/* =========================================================
   GOLDFISH WORKS V2 — Front page / FV prototype v0.2.3
========================================================= */

html.gfw-loading,
html.gfw-loading body {
	overflow: hidden;
}

.gfw-front {
	overflow: clip;
	background: #000;
}

/* ---------- Loader ---------- */
.gfw-loader {
	display: none;
}

.js .gfw-loader {
	position: fixed;
	z-index: 120000;
	inset: 0;
	display: grid;
	place-items: center;
	background: #000;
	color: var(--white);
	isolation: isolate;
	opacity: 1;
	visibility: visible;
	transition:
		opacity 560ms cubic-bezier(.16, 1, .3, 1),
		visibility 0s 560ms;
}

.js .gfw-loader.is-leaving {
	opacity: 0;
	visibility: hidden;
}

.gfw-loader__glow {
	position: absolute;
	z-index: -1;
	left: 50%;
	top: 52%;
	width: min(52vw, 760px);
	aspect-ratio: 1;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(255, 0, 95, .2), rgba(255, 0, 95, .03) 38%, transparent 69%);
	filter: blur(24px);
	transform: translate(-50%, -50%) scale(.72);
	animation: gfw-loader-breathe 1.7s ease-in-out infinite alternate;
}

.gfw-loader__inner {
	width: min(440px, calc(100vw - 48px));
}

.gfw-loader__wordmark {
	margin: 0 0 30px;
	font-family: var(--display);
	font-size: clamp(.9rem, 1.4vw, 1.15rem);
	font-weight: 900;
	letter-spacing: .25em;
	text-align: center;
}

.gfw-loader__meter {
	height: 1px;
	overflow: hidden;
	background: rgba(246, 243, 238, .18);
}

.gfw-loader__meter i {
	display: block;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg, var(--signal), #ff4f8f, var(--white));
	box-shadow: 0 0 16px rgba(255, 0, 95, .72);
	transform: scaleX(0);
	transform-origin: left center;
	will-change: transform;
}

.gfw-loader__meta {
	display: flex;
	justify-content: space-between;
	margin: 12px 0 0;
	font-family: var(--display);
	font-size: .62rem;
	font-weight: 800;
	letter-spacing: .18em;
}

/* ---------- Sticky FV sequence ---------- */
.gfw-hero-sequence {
	position: relative;
	height: 390svh;
	background: #000;
}

.gfw-hero-sticky {
	position: sticky;
	top: 0;
	height: 100svh;
	overflow: hidden;
	isolation: isolate;
	background: #000;
}

.gfw-hero-blackout {
	position: absolute;
	z-index: -4;
	inset: 0;
	background: #000;
}

.gfw-hero-glow {
	position: absolute;
	z-index: -2;
	left: 50%;
	top: 53%;
	width: min(94vw, 1500px);
	aspect-ratio: 1.45;
	border-radius: 50%;
	background:
		radial-gradient(ellipse at center, rgba(255, 0, 95, .74) 0%, rgba(159, 0, 59, .24) 35%, transparent 70%);
	filter: blur(45px);
	opacity: 0;
	transform: translate3d(-50%, -50%, 0) scale(.45);
	will-change: transform, opacity;
}

/* ---------- Title assembly ---------- */
.gfw-title-stage {
	position: absolute;
	z-index: 4;
	inset: 0;
	display: grid;
	grid-template-rows: auto 1fr auto;
	padding:
		calc(88px + env(safe-area-inset-top))
		var(--gutter)
		calc(34px + env(safe-area-inset-bottom));
	will-change: transform, opacity, filter;
}

.gfw-title-stage__eyebrow {
	margin: 0;
	font-family: var(--display);
	font-size: clamp(.62rem, .82vw, .76rem);
	font-weight: 800;
	letter-spacing: .22em;
	text-transform: uppercase;
	opacity: .78;
}

.gfw-kinetic-title {
	align-self: center;
	width: 100%;
	margin: 0;
	font-family: var(--display);
	font-weight: 900;
	line-height: .72;
	letter-spacing: -.075em;
	text-transform: uppercase;
}

.gfw-kinetic-title__line {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	white-space: nowrap;
}

.gfw-kinetic-title__line--goldfish {
	font-size: clamp(5.7rem, 15.6vw, 16rem);
}

.gfw-kinetic-title__line--works {
	margin-top: .01em;
	font-size: clamp(8.5rem, 24.8vw, 25rem);
}

.gfw-kinetic-title__letter {
	display: inline-block;
	transform-origin: center;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
}

.js .gfw-kinetic-title__letter {
	opacity: 0;
	filter: blur(14px);
	transform:
		translate3d(var(--entry-x), var(--entry-y), 0)
		rotate(var(--entry-r))
		scale(.78);
}

html.gfw-ready .gfw-kinetic-title__letter {
	opacity: 1;
	filter: blur(0);
	transform: translate3d(0, 0, 0) rotate(0) scale(1);
	transition:
		opacity 850ms cubic-bezier(.16, 1, .3, 1),
		filter 950ms cubic-bezier(.16, 1, .3, 1),
		transform 1120ms cubic-bezier(.16, 1, .3, 1);
	transition-delay: var(--entry-delay);
}

.gfw-title-stage__footer {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 30px;
}

.gfw-title-stage__lead {
	margin: 0;
	font-size: clamp(1.05rem, 1.8vw, 1.75rem);
	font-weight: 500;
	letter-spacing: .02em;
}

.gfw-title-stage__services {
	margin: 7px 0 0;
	color: rgba(246, 243, 238, .58);
	font-family: var(--display);
	font-size: .67rem;
	font-weight: 800;
	letter-spacing: .16em;
}

.gfw-title-stage__scroll {
	display: flex;
	align-items: center;
	gap: 16px;
	margin: 0;
	font-family: var(--display);
	font-size: .62rem;
	font-weight: 800;
	letter-spacing: .17em;
	white-space: nowrap;
}

.gfw-title-stage__scroll i {
	position: relative;
	display: block;
	width: 88px;
	height: 1px;
	overflow: hidden;
	background: rgba(246, 243, 238, .25);
}

.gfw-title-stage__scroll i::before {
	content: "";
	display: block;
	width: 42%;
	height: 100%;
	background: var(--white);
	animation: gfw-scroll-line 1.7s ease-in-out infinite;
}

/* ---------- Fish reveal ---------- */
.gfw-fish-stage {
	position: absolute;
	z-index: 3;
	inset: 0;
	display: grid;
	place-items: center;
	pointer-events: none;
}

.gfw-fish-stage__image {
	width: min(68vw, 1120px);
	max-width: none;
	height: auto;
	opacity: 0;
	filter: blur(7px) drop-shadow(0 0 34px rgba(255, 255, 255, .08));
	transform: translate3d(0, 3vh, 0) scale(.14);
	transform-origin: center;
	will-change: transform, opacity, filter;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
}

.gfw-hero-particles {
	position: absolute;
	z-index: 2;
	inset: 0;
	overflow: hidden;
	pointer-events: none;
	opacity: 0;
	will-change: opacity;
}

.gfw-hero-particles i {
	position: absolute;
	display: block;
	width: clamp(3px, .42vw, 7px);
	aspect-ratio: 1;
	border-radius: 50%;
	background: var(--signal);
	box-shadow: 0 0 14px rgba(255, 0, 95, .78);
	animation: gfw-particle-rise 7s linear infinite;
}

.gfw-hero-particles i:nth-child(1){left:8%;top:72%;animation-delay:-1s;scale:.55}
.gfw-hero-particles i:nth-child(2){left:18%;top:24%;animation-delay:-5s}
.gfw-hero-particles i:nth-child(3){left:29%;top:84%;animation-delay:-3s;scale:1.2}
.gfw-hero-particles i:nth-child(4){left:38%;top:45%;animation-delay:-6s;scale:.6}
.gfw-hero-particles i:nth-child(5){left:48%;top:74%;animation-delay:-2s}
.gfw-hero-particles i:nth-child(6){left:57%;top:18%;animation-delay:-4s;scale:.5}
.gfw-hero-particles i:nth-child(7){left:65%;top:66%;animation-delay:-7s;scale:1.3}
.gfw-hero-particles i:nth-child(8){left:73%;top:34%;animation-delay:-2.8s}
.gfw-hero-particles i:nth-child(9){left:82%;top:79%;animation-delay:-5.8s;scale:.7}
.gfw-hero-particles i:nth-child(10){left:91%;top:27%;animation-delay:-1.8s}
.gfw-hero-particles i:nth-child(11){left:43%;top:91%;animation-delay:-4.8s;scale:.5}
.gfw-hero-particles i:nth-child(12){left:69%;top:89%;animation-delay:-3.6s;scale:.8}

.gfw-sequence-index {
	position: absolute;
	z-index: 7;
	right: 22px;
	bottom: 32px;
	display: grid;
	justify-items: center;
	gap: 8px;
	font-family: var(--display);
	font-size: .6rem;
	font-weight: 900;
	letter-spacing: .09em;
}

.gfw-sequence-index i {
	width: 1px;
	height: 54px;
	background: rgba(246, 243, 238, .35);
}


/* ---------- SERVICES / DIGITAL scene ---------- */
.gfw-services-sequence {
	position: relative;
	height: 360svh;
	background: #020202;
}

.gfw-services-sticky {
	position: sticky;
	top: 0;
	height: 100svh;
	overflow: hidden;
	isolation: isolate;
	background:
		radial-gradient(circle at 73% 58%, rgba(255,255,255,.055), transparent 34%),
		linear-gradient(118deg, #020202 0%, #060606 50%, #020202 100%);
}

.gfw-digital-grid-bg {
	position: absolute;
	z-index: -4;
	inset: 0;
	opacity: 0;
	background-image:
		linear-gradient(rgba(246,243,238,.045) 1px, transparent 1px),
		linear-gradient(90deg, rgba(246,243,238,.045) 1px, transparent 1px),
		linear-gradient(rgba(255,0,95,.03) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255,0,95,.03) 1px, transparent 1px);
	background-size: 72px 72px, 72px 72px, 18px 18px, 18px 18px;
	mask-image: linear-gradient(90deg, transparent 0%, #000 28%, #000 100%);
	will-change: opacity, transform;
}

.gfw-digital-glow {
	position: absolute;
	z-index: -3;
	right: -7vw;
	bottom: -22vh;
	width: min(78vw, 1250px);
	aspect-ratio: 1.2;
	border-radius: 50%;
	background: radial-gradient(ellipse, rgba(255,0,95,.36), rgba(255,0,95,.08) 38%, transparent 70%);
	filter: blur(52px);
	opacity: 0;
	transform: scale(.62);
	will-change: opacity, transform;
}

.gfw-services-rail {
	position: absolute;
	z-index: 8;
	left: clamp(22px, 2vw, 38px);
	top: 50%;
	width: 108px;
	transform: translateY(-50%);
	opacity: 0;
	will-change: opacity, transform;
}

.gfw-services-rail__count {
	display: flex;
	align-items: baseline;
	gap: 7px;
	margin: 0;
	font-family: var(--display);
	letter-spacing: .08em;
}

.gfw-services-rail__count strong { font-size: 1.45rem; }
.gfw-services-rail__count span { color: rgba(246,243,238,.52); font-size: .72rem; }
.gfw-services-rail__line { display: block; width: 70px; height: 1px; margin: 13px 0 24px; background: rgba(246,243,238,.58); }
.gfw-services-rail ol { display: grid; gap: 18px; margin: 0; padding: 0; list-style: none; }
.gfw-services-rail li { color: rgba(246,243,238,.32); font-family: var(--display); font-size: .72rem; font-weight: 800; letter-spacing: .12em; }
.gfw-services-rail li.is-active { color: var(--white); }

.gfw-digital-word {
	position: absolute;
	z-index: 0;
	left: clamp(126px, 10.5vw, 205px);
	top: 1.5vh;
	margin: 0;
	color: var(--white);
	font-family: var(--display);
	font-size: clamp(9rem, 23.5vw, 25rem);
	font-weight: 900;
	line-height: .72;
	letter-spacing: -.075em;
	text-transform: uppercase;
	white-space: nowrap;
	opacity: 0;
	transform: translate3d(0, 13vh, 0) scale(1.08);
	transform-origin: left center;
	will-change: opacity, transform, filter;
}

.gfw-digital-word::after {
	content: "";
	position: absolute;
	inset: 12% 0 4%;
	background: linear-gradient(100deg, transparent 0%, rgba(255,255,255,.09) 45%, transparent 64%);
	mix-blend-mode: screen;
	transform: translateX(-115%);
	animation: gfw-digital-sheen 5.8s ease-in-out infinite;
}

.gfw-digital-copy {
	position: absolute;
	z-index: 5;
	left: clamp(126px, 11vw, 210px);
	bottom: clamp(34px, 4.6vh, 62px);
	width: min(31vw, 470px);
	opacity: 0;
	transform: translate3d(0, 7vh, 0);
	will-change: opacity, transform;
}

.gfw-digital-copy::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: -28px -44px -24px -28px;
	background: linear-gradient(90deg, rgba(2,2,2,.97) 0%, rgba(2,2,2,.88) 72%, rgba(2,2,2,0) 100%);
	filter: blur(2px);
	pointer-events: none;
}

.gfw-digital-copy__eyebrow {
	margin: 0 0 12px;
	font-family: var(--display);
	font-size: clamp(.78rem, 1.1vw, 1rem);
	font-weight: 900;
	letter-spacing: .12em;
}

.gfw-digital-copy h2 {
	margin: 0;
	font-size: clamp(1.8rem, 2.7vw, 3.1rem);
	font-weight: 500;
	line-height: 1.32;
	letter-spacing: -.035em;
}

.gfw-digital-copy__lead {
	max-width: 420px;
	margin: 18px 0 0;
	padding-top: 17px;
	border-top: 1px solid rgba(246,243,238,.32);
	color: rgba(246,243,238,.68);
	font-size: clamp(.78rem, .9vw, .94rem);
	line-height: 1.85;
}

.gfw-digital-capabilities {
	display: grid;
	margin: 24px 0 0;
	padding: 0;
	border-top: 1px solid rgba(246,243,238,.18);
	list-style: none;
}

.js .gfw-digital-capabilities {
	opacity: 0;
	transform: translate3d(0, 22px, 0);
	will-change: opacity, transform;
}

.gfw-digital-capabilities li {
	display: grid;
	grid-template-columns: 30px 1fr;
	gap: 12px;
	align-items: center;
	min-height: 48px;
	padding: 8px 0;
	border-bottom: 1px solid rgba(246,243,238,.16);
}

.gfw-digital-capabilities li > span {
	color: var(--signal);
	font-family: var(--display);
	font-size: .62rem;
	font-weight: 900;
	letter-spacing: .08em;
}

.gfw-digital-capabilities strong { display: block; font-size: .78rem; letter-spacing: .015em; }
.gfw-digital-capabilities p { margin: 2px 0 0; color: rgba(246,243,238,.48); font-size: .66rem; line-height: 1.5; }

.js .gfw-digital-capabilities li {
	opacity: .18;
	transform: translate3d(0, 12px, 0);
	filter: blur(1px);
	transition:
		opacity 260ms ease,
		transform 260ms ease,
		filter 260ms ease,
		border-color 260ms ease,
		background-color 260ms ease;
}

.gfw-digital-capabilities li.is-active {
	opacity: 1;
	transform: none;
	filter: none;
	border-bottom-color: rgba(255,255,255,.36);
	background: linear-gradient(90deg, rgba(255,0,95,.12), transparent 72%);
}

.gfw-digital-capabilities li.is-active > span,
.gfw-digital-capabilities li.is-active strong {
	color: var(--white);
}

.gfw-digital-capabilities li.is-active p {
	color: rgba(246,243,238,.8);
}


/* Stacked capability cards */
.gfw-digital-capabilities {
	position: relative;
	display: block;
	width: min(100%, 460px);
	min-height: 350px;
	margin-top: 22px;
}

.gfw-digital-capabilities li {
	position: absolute;
	left: 0;
	top: 0;
	display: grid;
	grid-template-columns: 38px 1fr;
	align-items: start;
	gap: 14px;
	width: min(100%, 430px);
	min-height: 88px;
	padding: 18px 18px 18px 16px;
	border: 1px solid rgba(246,243,238,.16);
	background: linear-gradient(180deg, rgba(18,18,18,.92), rgba(8,8,8,.96));
	box-shadow: 0 22px 45px rgba(0,0,0,.3);
	backdrop-filter: blur(10px);
	transform-origin: 0 0;
}

.gfw-digital-capabilities li > span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 999px;
	border: 1px solid rgba(255,0,95,.28);
	background: rgba(255,0,95,.08);
	font-size: .68rem;
	font-weight: 800;
	line-height: 1;
}

.gfw-digital-capabilities strong {
	font-size: .96rem;
	letter-spacing: .01em;
}

.gfw-digital-capabilities p {
	margin: 8px 0 0;
	font-size: .76rem;
	line-height: 1.6;
	color: rgba(246,243,238,.68);
}

.gfw-digital-capabilities li.is-active {
	border-color: rgba(255,255,255,.34);
	background: linear-gradient(90deg, rgba(255,0,95,.14), rgba(16,16,16,.95) 52%, rgba(8,8,8,.98));
	box-shadow: 0 28px 60px rgba(0,0,0,.42);
}

.gfw-digital-stage {
	position: absolute;
	z-index: 4;
	right: 1.8vw;
	bottom: 3.5vh;
	width: min(57vw, 1010px);
	height: min(67vh, 720px);
	perspective: 1400px;
	opacity: 0;
	transform: translate3d(9vw, 8vh, 0) scale(.86);
	transform-origin: right bottom;
	will-change: opacity, transform;
}

.gfw-digital-stage__axis {
	position: absolute;
	inset: 4% 2% 5% 0;
	border: 1px solid rgba(246,243,238,.12);
	transform: rotate(-3deg) skewX(-7deg);
}

.gfw-digital-stage__axis::before,
.gfw-digital-stage__axis::after {
	content: "";
	position: absolute;
	background: rgba(255,0,95,.45);
	box-shadow: 0 0 13px rgba(255,0,95,.55);
}
.gfw-digital-stage__axis::before { left: 42%; top: -4px; width: 7px; height: 7px; border-radius: 50%; }
.gfw-digital-stage__axis::after { right: -4px; bottom: 31%; width: 7px; height: 7px; border-radius: 50%; }

.gfw-ui-window,
.gfw-ui-phone,
.gfw-ui-code,
.gfw-ui-wireframe {
	position: absolute;
	border: 1px solid rgba(246,243,238,.24);
	background: rgba(5,5,5,.78);
	box-shadow: 0 35px 90px rgba(0,0,0,.58);
	backdrop-filter: blur(12px);
	will-change: transform, opacity, filter;
	transition: opacity 260ms ease, filter 260ms ease, border-color 260ms ease, box-shadow 260ms ease;
}

.gfw-ui-window--main {
	right: 9%;
	bottom: 4%;
	width: 68%;
	height: 63%;
	transform: rotateY(-8deg) rotateZ(-4deg);
}

.gfw-ui-window__bar {
	display: flex;
	align-items: center;
	gap: 7px;
	height: 31px;
	padding: 0 12px;
	border-bottom: 1px solid rgba(246,243,238,.16);
}
.gfw-ui-window__bar i { width: 5px; height: 5px; border-radius: 50%; background: rgba(246,243,238,.45); }
.gfw-ui-window__bar span { margin-left: auto; color: rgba(246,243,238,.35); font-family: var(--display); font-size: .48rem; letter-spacing: .11em; }
.gfw-ui-window__body { height: calc(100% - 31px); padding: 16px; }
.gfw-ui-window__nav { display: flex; align-items: center; gap: 10px; height: 12%; }
.gfw-ui-window__nav b { margin-right: auto; font-family: var(--display); font-size: .65rem; letter-spacing: .08em; }
.gfw-ui-window__nav span { width: 12%; height: 2px; background: rgba(246,243,238,.28); }
.gfw-ui-window__hero { display: grid; align-content: center; height: 57%; padding: 4% 7%; background: linear-gradient(135deg, rgba(255,0,95,.15), rgba(246,243,238,.035)); }
.gfw-ui-window__hero p { margin: 0; font-family: var(--display); font-size: clamp(1.8rem, 4vw, 4.8rem); font-weight: 900; line-height: .82; letter-spacing: -.05em; }
.gfw-ui-window__hero i { display: block; width: 58%; height: 3px; margin-top: 13px; background: rgba(246,243,238,.34); }
.gfw-ui-window__hero i + i { width: 36%; margin-top: 8px; }
.gfw-ui-window__cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; height: 25%; margin-top: 3%; }
.gfw-ui-window__cards i { border: 1px solid rgba(246,243,238,.16); background: rgba(246,243,238,.025); }

.gfw-ui-phone {
	right: 2%;
	bottom: 0;
	width: 23%;
	height: 57%;
	padding: 8px;
	border-radius: 28px;
	transform: rotateY(-11deg) rotateZ(3deg);
}
.gfw-ui-phone__speaker { width: 28%; height: 3px; margin: 2px auto 8px; border-radius: 10px; background: rgba(246,243,238,.3); }
.gfw-ui-phone__screen { display: grid; align-content: center; height: calc(100% - 13px); padding: 12%; border: 1px solid rgba(246,243,238,.12); background: linear-gradient(180deg, rgba(255,0,95,.14), rgba(255,255,255,.025)); }
.gfw-ui-phone__screen b { font-family: var(--display); font-size: clamp(.8rem, 1.8vw, 2rem); line-height: 1.05; }
.gfw-ui-phone__screen i { display: block; width: 100%; height: 1px; margin-top: 13px; background: rgba(246,243,238,.28); }
.gfw-ui-phone__screen i:nth-of-type(2) { width: 72%; }
.gfw-ui-phone__screen i:nth-of-type(3) { width: 45%; }

.gfw-ui-code {
	left: 5%;
	top: 14%;
	width: 34%;
	padding: 17px 20px;
	transform: rotateY(8deg) rotateZ(-5deg);
}
.gfw-ui-code p { margin: 0; color: rgba(246,243,238,.55); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: clamp(.48rem, .72vw, .72rem); line-height: 1.75; }
.gfw-ui-code span { color: var(--signal); }

.gfw-ui-wireframe {
	left: 1%;
	bottom: 12%;
	width: 39%;
	height: 31%;
	background: transparent;
	transform: rotateZ(3deg);
}
.gfw-ui-wireframe i { position: absolute; width: 7px; height: 7px; border: 1px solid rgba(246,243,238,.65); background: #050505; }
.gfw-ui-wireframe i:nth-child(1){left:-4px;top:-4px}.gfw-ui-wireframe i:nth-child(2){right:-4px;top:-4px}.gfw-ui-wireframe i:nth-child(3){left:-4px;bottom:-4px}.gfw-ui-wireframe i:nth-child(4){right:-4px;bottom:-4px}.gfw-ui-wireframe i:nth-child(5){left:52%;top:43%;background:var(--signal);border-color:var(--signal);box-shadow:0 0 12px rgba(255,0,95,.7)}
.gfw-ui-wireframe span { position: absolute; display: block; border: 1px solid rgba(246,243,238,.14); }
.gfw-ui-wireframe span:nth-of-type(1){inset:12% 46% 50% 10%}.gfw-ui-wireframe span:nth-of-type(2){inset:12% 9% 50% 58%}.gfw-ui-wireframe span:nth-of-type(3){inset:59% 10% 11% 10%}

.gfw-digital-stage__grid-label {
	position: absolute;
	right: 0;
	top: 13%;
	margin: 0;
	color: rgba(246,243,238,.4);
	font-family: var(--display);
	font-size: .6rem;
	letter-spacing: .11em;
	text-align: right;
}
.gfw-digital-stage__grid-label span { color: rgba(246,243,238,.7); line-height: 2.4; }

.gfw-services-scroll {
	position: absolute;
	z-index: 7;
	left: 50%;
	bottom: 22px;
	display: grid;
	justify-items: center;
	gap: 8px;
	margin: 0;
	font-family: var(--display);
	font-size: .57rem;
	font-weight: 800;
	letter-spacing: .13em;
	transform: translateX(-50%);
	opacity: 0;
}
.gfw-services-scroll i { display: block; width: 1px; height: 45px; background: rgba(246,243,238,.4); }


/* DIGITAL -> GRAPHIC title bridge */


/* GRAPHIC sequence */
.gfw-graphic-sequence {
	position: relative;
	height: 300svh;
	background: #050505;
	overflow: clip;
}
.gfw-graphic-sticky {
	position: sticky;
	top: 0;
	height: 100svh;
	padding: 84px var(--gutter) 48px;
	background: radial-gradient(circle at 76% 54%, rgba(255,0,95,.12), transparent 34%), #050505;
	overflow: hidden;
}
.gfw-graphic-grid,
.gfw-graphic-glow,
.gfw-graphic-word,
.gfw-graphic-copy,
.gfw-graphic-canvas,
.gfw-graphic-rail { position: absolute; }
.gfw-graphic-grid {
	inset: 0;
	background-image: linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
	background-size: 44px 44px;
	opacity: .32;
}
.gfw-graphic-glow {
	width: 55vw; height: 55vw; right: -8vw; top: 10vh;
	background: radial-gradient(circle, rgba(255,0,95,.18), transparent 60%);
	filter: blur(24px); opacity: .65;
}
.gfw-graphic-rail {
	left: var(--gutter); top: 50%; z-index: 6; transform: translateY(-50%);
	display: grid; gap: 12px; color: rgba(246,243,238,.72);
}
.gfw-graphic-rail__count { margin: 0; font-family: var(--display); font-weight: 800; letter-spacing: .15em; font-size: .68rem; }
.gfw-graphic-rail__count strong { font-size: 2rem; color: var(--white); }
.gfw-graphic-rail__line { display:block; width: 68px; height: 1px; background: rgba(255,255,255,.24); }
.gfw-graphic-rail ol { list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.gfw-graphic-rail li { font-family: var(--display); font-size: .66rem; font-weight: 700; letter-spacing: .16em; opacity: .35; }
.gfw-graphic-rail li.is-active { color: var(--white); opacity: 1; }
.gfw-graphic-word {
	left: clamp(100px, 9vw, 148px); top: 14vh; z-index: 1; margin: 0;
	font-family: var(--display); font-size: clamp(9rem, 26vw, 20rem); font-weight: 900; line-height: .78; letter-spacing: -.08em;
	color: rgba(246,243,238,.07);
}
.gfw-graphic-copy {
	left: clamp(110px, 10vw, 158px); bottom: 14vh; z-index: 7; width: min(38vw, 560px); color: var(--white);
}
.gfw-graphic-copy__eyebrow { margin:0 0 18px; font-family: var(--display); font-size: .82rem; font-weight: 800; letter-spacing: .15em; }
.gfw-graphic-copy h2 { margin:0; font-size: clamp(2rem, 3.5vw, 3.5rem); line-height: 1.16; letter-spacing: -.03em; }
.gfw-graphic-copy__lead {
	width: min(100%, 470px); margin: 20px 0 0; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.14);
	font-size: .98rem; line-height: 1.9; color: rgba(246,243,238,.76);
}
.gfw-graphic-canvas {
	right: 4.5vw; top: 12vh; z-index: 4; width: min(52vw, 760px); height: 76vh; perspective: 1600px;
}
.gfw-graphic-sheet {
	position: absolute; inset: 0; border: 1px solid rgba(255,255,255,.08); background: rgba(255,255,255,.02);
	box-shadow: inset 0 0 0 1px rgba(255,255,255,.04);
}
.gfw-graphic-sheet__crop { position:absolute; width:26px; height:26px; border-color: rgba(246,243,238,.42); opacity:.55; }
.gfw-graphic-sheet__crop--tl { left:-1px; top:-1px; border-left:1px solid; border-top:1px solid; }
.gfw-graphic-sheet__crop--tr { right:-1px; top:-1px; border-right:1px solid; border-top:1px solid; }
.gfw-graphic-sheet__crop--bl { left:-1px; bottom:-1px; border-left:1px solid; border-bottom:1px solid; }
.gfw-graphic-sheet__crop--br { right:-1px; bottom:-1px; border-right:1px solid; border-bottom:1px solid; }
.gfw-graphic-poster {
	position:absolute;
	inset: 8% 6%;
	background:
		linear-gradient(rgba(17,17,17,.035) 1px, transparent 1px),
		linear-gradient(90deg, rgba(17,17,17,.035) 1px, transparent 1px),
		#efe7dc;
	background-size: 34px 34px, 34px 34px, auto;
	box-shadow: 0 36px 100px rgba(0,0,0,.45);
	overflow:hidden;
	transform-style: preserve-3d;
}
.gfw-graphic-poster::before {
	content: "";
	position: absolute;
	z-index: 0;
	left: 7%;
	top: 7%;
	width: 34px;
	height: 34px;
	border-left: 1px solid rgba(17,17,17,.28);
	border-top: 1px solid rgba(17,17,17,.28);
	box-shadow: -7px -7px 0 -6px rgba(17,17,17,.34);
}
.gfw-graphic-poster::after {
	content: "";
	position: absolute;
	z-index: 0;
	right: 7%;
	top: 7%;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--signal);
	box-shadow: 0 0 16px rgba(255,0,95,.62);
}
.gfw-graphic-part { position:absolute; will-change: transform, opacity, filter; }
.gfw-graphic-part--photo-a { left: 7%; top: 11%; width: 38%; height: 34%; background: linear-gradient(135deg, #d8d0c5, #968778 65%, #463a32); }
.gfw-graphic-part--photo-b { right: 8%; bottom: 17%; width: 28%; height: 22%; background: linear-gradient(145deg, #201e20, #6e6969 58%, #d4d1cb); }
.gfw-graphic-part--magenta { left: 44%; top: 12%; width: 34%; height: 24%; background: linear-gradient(135deg, #ff0066, #8e002f); }
.gfw-graphic-part--blackband { left: 7%; top: 55%; width: 52%; height: 8%; background: #111; z-index: 1; }
.gfw-graphic-part--headline { left: 42%; top: 38%; color:#111; z-index: 3; }
.gfw-graphic-part--headline p { margin:0; font-family: var(--display); font-size: clamp(2rem, 4.6vw, 4rem); font-weight:900; line-height:.88; letter-spacing:-.07em; }
.gfw-graphic-part--identity,
.gfw-graphic-part--editorial,
.gfw-graphic-part--package,
.gfw-graphic-part--printdata { display:inline-flex; align-items:center; justify-content:center; padding: 7px 12px; border:1px solid rgba(17,17,17,.14); font-family: var(--display); font-size:.62rem; font-weight:800; letter-spacing:.14em; color:#111; background: rgba(255,255,255,.45); backdrop-filter: blur(6px); }
.gfw-graphic-part--identity { left: 8%; bottom: 12%; }
.gfw-graphic-part--editorial { left: 32%; bottom: 12%; }
.gfw-graphic-part--package { left: 56%; bottom: 12%; }
.gfw-graphic-part--printdata { right: 8%; top: 12%; }
.gfw-graphic-part--caption { left: 7%; top: 63%; color: rgba(17,17,17,.62); }
.gfw-graphic-part--caption p { margin:0; font-size:.76rem; letter-spacing:.06em; }
.gfw-graphic-part--line-a { left: 7%; top: 61%; width: 54%; height: 1px; background: rgba(17,17,17,.22); }
.gfw-graphic-part--line-b { right: 8%; top: 39%; width: 18%; height: 1px; background: rgba(17,17,17,.22); }
.js .gfw-graphic-word,
.js .gfw-graphic-copy,
.js .gfw-graphic-canvas,
.js .gfw-graphic-rail { opacity: 0; }
.js .gfw-graphic-word {
	position: fixed;
	left: 50%;
	top: 50%;
	transform: translate3d(-50%, -50%, 0) scale(.76);
	filter: blur(0);
	pointer-events: none;
	will-change: left, top, opacity, transform, color, text-shadow;
}
.js .gfw-graphic-copy { transform: translate3d(0, 6vh, 0); }
.js .gfw-graphic-canvas { transform: translate3d(0, 6vh, 0) scale(.96); }
.js .gfw-graphic-rail { transform: translate3d(0, calc(-50% + 24px), 0); }

@media (max-width: 1100px) {
	.gfw-graphic-sequence { height: 320svh; }
	.gfw-graphic-copy { width: min(42vw, 520px); }
	.gfw-graphic-canvas { width: min(54vw, 680px); right: 2vw; }
}
@media (max-width: 680px) {
	.gfw-graphic-sequence { height: 340svh; }
	.gfw-graphic-sticky { padding-top: 70px; }
	.gfw-graphic-rail { left: 18px; top: 76px; width: calc(100% - 36px); transform: none !important; }
	.gfw-graphic-rail__count { position:absolute; right:0; top:0; }
	.gfw-graphic-rail__line { width:54px; margin: 11px 0 13px; }
	.gfw-graphic-rail ol { grid-template-columns: repeat(3, auto); justify-content:start; gap:18px; }
	.gfw-graphic-rail li { font-size: .58rem; }
	.gfw-graphic-word { left: 16px; top: 14vh; font-size: clamp(6rem, 33vw, 9rem); }
	.gfw-graphic-copy { left: 20px; top: 28vh; bottom: auto; width: calc(100% - 40px); }
	.gfw-graphic-copy h2 { font-size: clamp(1.55rem, 7.4vw, 2.1rem); line-height:1.24; }
	.gfw-graphic-copy__lead { width: 92%; margin-top: 14px; padding-top: 12px; font-size: .72rem; line-height: 1.72; }
	.gfw-graphic-canvas { right: 4vw; top: auto; bottom: 4vh; width: 92vw; height: 40vh; }
	.gfw-graphic-sheet { border-width: 1px; }
	.gfw-graphic-poster { inset: 7% 5%; }
	.gfw-graphic-part--headline p { font-size: clamp(1.6rem, 9vw, 2.6rem); }
	.gfw-graphic-part--identity,
	.gfw-graphic-part--editorial,
	.gfw-graphic-part--package,
	.gfw-graphic-part--printdata { font-size: .48rem; padding: 6px 8px; }
	.gfw-graphic-part--caption p { font-size: .58rem; }
}


/* PRINT sequence */
.gfw-print-sequence {
	position: relative;
	height: 360svh;
	background: #030303;
	overflow: clip;
}
.gfw-print-sticky {
	position: sticky;
	top: 0;
	height: 100svh;
	padding: 84px var(--gutter) 48px;
	overflow: hidden;
	background:
		radial-gradient(circle at 70% 50%, rgba(255, 0, 102, 0.10), transparent 28%),
		linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,0)),
		#030303;
}
.gfw-print-grid,
.gfw-print-glow,
.gfw-print-word,
.gfw-print-meta,
.gfw-print-copy,
.gfw-print-stage { position: absolute; }
.gfw-print-grid {
	inset: 0;
	background-image: linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px);
	background-size: 48px 48px;
	opacity: .22;
}
.gfw-print-glow {
	width: 44vw; height: 44vw; left: 52%; top: 38%; transform: translate(-50%, -50%);
	background: radial-gradient(circle, rgba(255,0,95,.22), transparent 62%);
	filter: blur(22px);
	opacity: .72;
}
.gfw-print-meta {
	left: var(--gutter); top: 92px; z-index: 7; color: rgba(246,243,238,.8);
	display: grid; gap: 10px;
}
.gfw-print-meta__count { margin:0; font-family: var(--display); font-size: .72rem; font-weight: 800; letter-spacing: .14em; }
.gfw-print-meta__count strong { font-size: 2rem; color: var(--white); }
.gfw-print-meta__label { margin:0; font-family: var(--display); font-size: .72rem; font-weight: 800; letter-spacing: .22em; color: var(--signal); }
.gfw-print-word {
	left: 50%; top: 16vh; transform: translateX(-50%);
	margin: 0; z-index: 1; font-family: var(--display); font-size: clamp(8rem, 22vw, 17rem);
	font-weight: 900; line-height: .82; letter-spacing: -.08em; color: rgba(246,243,238,.08);
}
.gfw-print-copy {
	left: 50%; top: 22vh; z-index: 6; width: min(36vw, 520px); color: var(--white); text-align: center;
	transform: translateX(-50%);
}
.gfw-print-copy__eyebrow { margin:0 0 18px; font-family: var(--display); font-size: .82rem; font-weight: 800; letter-spacing: .15em; }
.gfw-print-copy h2 { margin:0; font-size: clamp(2.2rem, 4.6vw, 4rem); line-height: 1.1; letter-spacing: -.04em; }
.gfw-print-copy h2 span { display: block; white-space: nowrap; }
.gfw-print-copy__lead {
	margin: 18px auto 0; max-width: 470px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.14);
	font-size: .98rem; line-height: 1.85; color: rgba(246,243,238,.76);
}
.gfw-print-stage {
	left: 50%; bottom: 8vh; width: min(78vw, 1040px); height: 50vh; transform: translateX(-50%); z-index: 4;
}
.gfw-print-fabric,
.gfw-print-layers { position: absolute; inset: 0; }
.gfw-print-fabric {
	border-radius: 28px; overflow: hidden;
	background: linear-gradient(135deg, #161616, #080808 60%, #151515);
	box-shadow: 0 40px 120px rgba(0,0,0,.45), inset 0 0 0 1px rgba(255,255,255,.06);
}
.gfw-print-fabric::before {
	content: ""; position:absolute; inset:0;
	background-image: linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px);
	background-size: 8px 8px; mix-blend-mode: screen; opacity: .16;
}
.gfw-print-fabric__mesh {
	position:absolute; inset:0; background-image: linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
	background-size: 18px 18px; opacity: .12;
}
.gfw-print-fabric__design {
	position:absolute; inset: 12% 12% 16%; opacity: 0;
}
.gfw-print-fabric__design p {
	position:absolute; right: 8%; top: 10%; margin:0;
	font-family: var(--display); font-size: clamp(2.2rem, 5vw, 4.8rem); line-height: .88; letter-spacing: -.06em; font-weight: 900;
	color: #f6f3ee;
}
.gfw-print-fabric__mark {
	position:absolute; left: 0; top: 6%; width: 44%; height: 58%;
	background: linear-gradient(135deg, rgba(255,0,102,.95), rgba(112,0,45,.95));
	clip-path: polygon(0 0, 82% 0, 62% 72%, 0 100%);
	box-shadow: 0 0 60px rgba(255,0,102,.28);
}
.gfw-print-fabric__line {
	position:absolute; left: 2%; height: 2px; background: rgba(246,243,238,.58);
}
.gfw-print-fabric__line--a { width: 52%; bottom: 18%; }
.gfw-print-fabric__line--b { width: 30%; bottom: 11%; }
.gfw-print-layer {
	position: absolute; inset: 6% 10%; border-radius: 24px; border: 1px solid rgba(255,255,255,.12);
	background: rgba(255,255,255,.04); backdrop-filter: blur(3px);
	box-shadow: 0 30px 70px rgba(0,0,0,.25);
}
.gfw-print-layer span {
	position: absolute; left: 24px; top: 18px; font-family: var(--display); font-size: .72rem; font-weight: 800; letter-spacing: .16em; color: rgba(246,243,238,.78);
}
.gfw-print-layer--black { transform: translate3d(-56px, -24px, 0) rotate(-4deg); }
.gfw-print-layer--white { transform: translate3d(0, 0, 0) rotate(0deg); }
.gfw-print-layer--magenta { transform: translate3d(56px, 26px, 0) rotate(4deg); }
.gfw-print-layer--black::after,
.gfw-print-layer--white::after,
.gfw-print-layer--magenta::after {
	content: ""; position:absolute; inset: 18% 14% 20%; border-radius: 16px;
}
.gfw-print-layer--black::after { background: rgba(5,5,5,.76); }
.gfw-print-layer--white::after { background: rgba(246,243,238,.34); }
.gfw-print-layer--magenta::after { background: linear-gradient(135deg, rgba(255,0,102,.72), rgba(112,0,45,.72)); }
.gfw-print-squeegee {
	position: absolute; left: 8%; top: 14%; width: 22%; height: 72%; transform: translateX(-120%);
}
.gfw-print-squeegee i {
	position:absolute; inset:0; border-radius: 24px; background: linear-gradient(90deg, rgba(255,255,255,.16), rgba(255,255,255,.02)); border: 1px solid rgba(255,255,255,.14);
	box-shadow: 0 22px 50px rgba(0,0,0,.24);
}
.gfw-print-squeegee b {
	position:absolute; left: -6%; top: 0; width: 10px; height: 100%; background: rgba(246,243,238,.76); box-shadow: 0 0 22px rgba(246,243,238,.22);
}
.js .gfw-print-meta,
.js .gfw-print-word,
.js .gfw-print-copy,
.js .gfw-print-stage { opacity: 0; }
.js .gfw-print-meta { transform: translate3d(0, 20px, 0); }
.js .gfw-print-word { transform: translate3d(-50%, 10vh, 0) scale(1.04); filter: blur(14px); }
.js .gfw-print-copy { transform: translate3d(-50%, 5vh, 0); }
.js .gfw-print-stage { transform: translate3d(-50%, 5vh, 0) scale(.96); }

@media (max-width: 1100px) {
	.gfw-print-sequence { height: 390svh; }
	.gfw-print-stage { width: min(88vw, 920px); height: 46vh; }
	.gfw-print-copy { width: min(48vw, 560px); }
}
@media (max-width: 680px) {
	.gfw-print-sequence { height: 420svh; }
	.gfw-print-sticky { padding-top: 72px; }
	.gfw-print-meta { left: 18px; top: 76px; }
	.gfw-print-word { top: 13vh; font-size: clamp(5.8rem, 28vw, 8rem); }
	.gfw-print-copy { top: 24vh; width: calc(100% - 40px); }
	.gfw-print-copy h2 { font-size: clamp(1.9rem, 8vw, 2.6rem); }
	.gfw-print-copy__lead { font-size: .76rem; line-height: 1.72; }
	.gfw-print-stage { bottom: 5vh; width: 92vw; height: 34vh; }
	.gfw-print-fabric { border-radius: 20px; }
	.gfw-print-layer { inset: 8% 8%; border-radius: 18px; }
	.gfw-print-layer span { left: 16px; top: 12px; font-size: .6rem; }
	.gfw-print-fabric__design p { font-size: clamp(1.3rem, 8vw, 2.2rem); }
}


/* v0.8.1 PRINT material and process refinement */
.gfw-print-copy {
	transform-origin: 0 0;
	will-change: left, top, transform, opacity;
}

.gfw-print-stage {
	bottom: 6vh;
	height: 54vh;
}

.gfw-print-fabric {
	border-radius: 4px;
	background:
		linear-gradient(102deg, transparent 0 18%, rgba(255,255,255,.035) 30%, transparent 43%),
		linear-gradient(78deg, transparent 0 58%, rgba(255,255,255,.025) 67%, transparent 78%),
		linear-gradient(180deg, #171717, #090909 55%, #131313);
	box-shadow:
		0 44px 120px rgba(0,0,0,.48),
		inset 0 0 0 1px rgba(255,255,255,.045),
		inset 0 20px 48px rgba(255,255,255,.018);
	transform-origin: center center;
}

.gfw-print-fabric::before {
	background-image:
		repeating-linear-gradient(0deg, rgba(255,255,255,.038) 0 1px, transparent 1px 4px),
		repeating-linear-gradient(90deg, rgba(255,255,255,.028) 0 1px, transparent 1px 5px);
	background-size: auto;
	mix-blend-mode: screen;
	opacity: .34;
}

.gfw-print-fabric::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse at 18% 42%, rgba(255,255,255,.035), transparent 34%),
		radial-gradient(ellipse at 78% 70%, rgba(0,0,0,.28), transparent 42%);
	pointer-events: none;
}

.gfw-print-fabric__mesh {
	background-image:
		repeating-linear-gradient(0deg, rgba(255,255,255,.035) 0 1px, transparent 1px 10px),
		repeating-linear-gradient(90deg, rgba(255,255,255,.035) 0 1px, transparent 1px 10px);
	background-size: auto;
	opacity: .18;
}

.gfw-print-layer {
	inset: 7% 9%;
	border-radius: 2px;
	border: 2px solid rgba(246,243,238,.24);
	background:
		repeating-linear-gradient(0deg, rgba(246,243,238,.045) 0 1px, transparent 1px 10px),
		repeating-linear-gradient(90deg, rgba(246,243,238,.045) 0 1px, transparent 1px 10px),
		rgba(4,4,4,.24);
	backdrop-filter: none;
	box-shadow:
		0 20px 52px rgba(0,0,0,.28),
		inset 0 0 0 12px rgba(5,5,5,.22),
		inset 0 0 0 13px rgba(246,243,238,.08);
}

.gfw-print-layer::before {
	content: "";
	position: absolute;
	inset: 14px;
	background:
		linear-gradient(90deg, rgba(246,243,238,.62), rgba(246,243,238,.62)) left top / 24px 1px no-repeat,
		linear-gradient(rgba(246,243,238,.62), rgba(246,243,238,.62)) left top / 1px 24px no-repeat,
		linear-gradient(90deg, rgba(246,243,238,.62), rgba(246,243,238,.62)) right top / 24px 1px no-repeat,
		linear-gradient(rgba(246,243,238,.62), rgba(246,243,238,.62)) right top / 1px 24px no-repeat,
		linear-gradient(90deg, rgba(246,243,238,.62), rgba(246,243,238,.62)) left bottom / 24px 1px no-repeat,
		linear-gradient(rgba(246,243,238,.62), rgba(246,243,238,.62)) left bottom / 1px 24px no-repeat,
		linear-gradient(90deg, rgba(246,243,238,.62), rgba(246,243,238,.62)) right bottom / 24px 1px no-repeat,
		linear-gradient(rgba(246,243,238,.62), rgba(246,243,238,.62)) right bottom / 1px 24px no-repeat;
	opacity: .34;
	pointer-events: none;
}

.gfw-print-layer span {
	left: 30px;
	top: 24px;
	padding: 5px 8px;
	background: rgba(3,3,3,.58);
	border: 1px solid rgba(246,243,238,.12);
}

.gfw-print-layer--black::after,
.gfw-print-layer--white::after,
.gfw-print-layer--magenta::after {
	inset: 18% 14% 20%;
	border-radius: 0;
	clip-path: polygon(0 0, 68% 0, 52% 72%, 0 100%);
}

.gfw-print-layer--black::after {
	background: rgba(0,0,0,.78);
}

.gfw-print-layer--white::after {
	background: rgba(246,243,238,.38);
}

.gfw-print-layer--magenta::after {
	background: linear-gradient(135deg, rgba(255,0,102,.78), rgba(112,0,45,.78));
}

.gfw-print-squeegee {
	left: 0;
	top: 38%;
	width: 28%;
	height: 22%;
	transform: translate3d(-130%, 0, 0);
	z-index: 20;
	will-change: transform, opacity;
}

.gfw-print-squeegee i {
	inset: 0 0 42%;
	border-radius: 3px;
	background:
		linear-gradient(180deg, rgba(246,243,238,.25), rgba(246,243,238,.08)),
		#171717;
	border: 1px solid rgba(246,243,238,.28);
	box-shadow:
		0 18px 42px rgba(0,0,0,.38),
		inset 0 1px rgba(255,255,255,.12);
}

.gfw-print-squeegee b {
	left: 0;
	top: auto;
	bottom: 21%;
	width: 100%;
	height: 10px;
	background: rgba(246,243,238,.82);
	box-shadow:
		0 0 18px rgba(246,243,238,.24),
		0 8px 18px rgba(0,0,0,.38);
}

.gfw-print-fabric__design {
	z-index: 3;
}

@media (max-width: 680px) {
	.gfw-print-stage {
		bottom: 4vh;
		height: 36vh;
	}

	.gfw-print-fabric {
		border-radius: 3px;
	}

	.gfw-print-layer {
		inset: 7% 6%;
		border-radius: 2px;
	}

	.gfw-print-layer span {
		left: 18px;
		top: 15px;
		font-size: .54rem;
	}

	.gfw-print-squeegee {
		width: 36%;
		height: 24%;
		top: 37%;
	}
}


/* v0.8.2 PRINT: correct vertical squeegee and clear work area */
.gfw-print-copy {
	transform-origin: 0 0;
	will-change: left, top, transform, opacity;
}

.gfw-print-stage {
	bottom: 6vh;
	height: 54vh;
}

.gfw-print-fabric__design {
	inset: 13% 10% 14%;
}

.gfw-print-fabric__design p {
	right: 4%;
	top: 5%;
	max-width: 44%;
	font-size: clamp(2rem, 4.2vw, 4rem);
	text-align: left;
}

.gfw-print-fabric__mark {
	left: 2%;
	top: 8%;
	width: 42%;
	height: 58%;
}

/* The blade is vertical because the printing stroke moves left to right. */
.gfw-print-squeegee {
	position: absolute;
	z-index: 30;
	left: 0;
	top: 10%;
	width: 8%;
	height: 80%;
	transform: translate3d(-180%, 0, 0);
	will-change: transform, opacity;
}

.gfw-print-squeegee i {
	position: absolute;
	left: 0;
	top: 4%;
	width: 72%;
	height: 92%;
	border-radius: 3px;
	background:
		linear-gradient(90deg, rgba(246,243,238,.24), rgba(246,243,238,.06)),
		#171717;
	border: 1px solid rgba(246,243,238,.28);
	box-shadow:
		14px 0 34px rgba(0,0,0,.4),
		inset 1px 0 rgba(255,255,255,.12);
}

.gfw-print-squeegee b {
	position: absolute;
	right: 0;
	top: 0;
	width: 11px;
	height: 100%;
	background: rgba(246,243,238,.86);
	box-shadow:
		0 0 20px rgba(246,243,238,.28),
		10px 0 20px rgba(0,0,0,.36);
}

@media (max-width: 680px) {
	.gfw-print-stage {
		bottom: 4vh;
		height: 36vh;
	}

	.gfw-print-fabric__design p {
		font-size: clamp(1.15rem, 7vw, 2rem);
		max-width: 46%;
	}

	.gfw-print-squeegee {
		top: 9%;
		width: 11%;
		height: 82%;
	}

	.gfw-print-squeegee b {
		width: 8px;
	}
}


.gfw-next-field {
	position: relative;
	display: grid;
	place-content: center;
	min-height: 68svh;
	padding: 80px var(--gutter);
	background: #020202;
	text-align: center;
	overflow: hidden;
}
.gfw-next-field::before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at 50% 58%, rgba(255,0,95,.18), transparent 34%);
	pointer-events: none;
}
.gfw-next-field__count,
.gfw-next-field__label {
	position: relative;
	margin: 0;
	font-family: var(--display);
	font-size: .68rem;
	font-weight: 800;
	letter-spacing: .16em;
}
.gfw-next-field h2 {
	position: relative;
	margin: 12px 0 16px;
	font-family: var(--display);
	font-size: clamp(5rem, 18vw, 17rem);
	font-weight: 900;
	line-height: .78;
	letter-spacing: -.07em;
}
.gfw-next-field__label { color: var(--signal); }

@keyframes gfw-digital-sheen {
	0%, 38% { transform: translateX(-115%); opacity: 0; }
	48% { opacity: .8; }
	67%, 100% { transform: translateX(115%); opacity: 0; }
}

@media (max-width: 1000px) {
	.gfw-services-sequence { height: 300svh; }
	.gfw-digital-word { left: 96px; font-size: clamp(8rem, 23vw, 17rem); }
	.gfw-digital-copy { left: 96px; width: 41vw; }
	.gfw-digital-stage { width: 63vw; right: -3vw; }
}

@media (max-width: 680px) {
	.gfw-services-sequence { height: 300svh; }
	.gfw-services-sticky { padding-top: 70px; }
	.gfw-services-rail {
		left: 18px;
		top: 78px;
		width: calc(100% - 36px);
		transform: none;
	}
	.gfw-services-rail__count { position: absolute; right: 0; top: 0; }
	.gfw-services-rail__line { width: 54px; margin: 11px 0 13px; }
	.gfw-services-rail ol { grid-template-columns: repeat(3, auto); justify-content: start; gap: 18px; }
	.gfw-services-rail li { font-size: .58rem; }
	.gfw-digital-word {
		left: 16px;
		top: 15.5vh;
		font-size: clamp(7.2rem, 37vw, 12rem);
		line-height: .75;
	}
	.gfw-digital-copy {
		left: 20px;
		top: 31vh;
		bottom: auto;
		width: calc(100% - 40px);
	}
	.gfw-digital-copy h2 { font-size: clamp(1.55rem, 7.3vw, 2.1rem); line-height: 1.28; }
	.gfw-digital-copy__lead { width: 90%; margin-top: 13px; padding-top: 12px; font-size: .72rem; line-height: 1.7; }
	.gfw-digital-capabilities { width: 100%; min-height: 286px; margin-top: 14px; }
	.gfw-digital-capabilities li { width: calc(100% - 12px); min-height: 74px; grid-template-columns: 28px 1fr; gap: 12px; padding: 14px 14px 14px 12px; }
	.gfw-digital-capabilities p { display: block; font-size: .68rem; margin-top: 5px; }
	.gfw-digital-capabilities strong { font-size: .73rem; }
	.gfw-digital-stage {
		right: -15vw;
		bottom: 2vh;
		width: 112vw;
		height: 39vh;
	}
	.gfw-ui-window--main { right: 16%; width: 66%; height: 70%; }
	.gfw-ui-phone { right: 4%; width: 24%; height: 64%; border-radius: 18px; }
	.gfw-ui-code { left: 3%; top: 2%; width: 38%; padding: 10px 12px; }
	.gfw-ui-wireframe { left: 0; bottom: 1%; width: 38%; height: 35%; }
	.gfw-digital-stage__grid-label { display: none; }
	.gfw-services-scroll { display: none; }
}



/* v0.5.0 DIGITAL readability rebuild */
.gfw-digital-copy {
	width: min(34vw, 520px);
}

.gfw-digital-copy__lead {
	width: min(100%, 460px);
}

.gfw-digital-capabilities {
	position: relative;
	display: block;
	width: min(100%, 500px);
	min-height: 264px;
	margin-top: 26px;
}

.gfw-digital-capabilities li {
	position: absolute;
	inset: 0 auto auto 0;
	display: grid;
	grid-template-columns: 56px 1fr;
	gap: 18px;
	align-items: start;
	width: min(100%, 500px);
	min-height: 190px;
	padding: 26px 26px 24px 24px;
	border: 1px solid rgba(246,243,238,.18);
	border-radius: 20px;
	background: linear-gradient(180deg, rgba(18,18,18,.96), rgba(8,8,8,.98));
	box-shadow: 0 35px 90px rgba(0,0,0,.44);
	backdrop-filter: blur(10px);
	will-change: opacity, transform, filter;
}

.gfw-digital-capabilities li > span {
	width: 42px;
	height: 42px;
	font-size: .86rem;
}

.gfw-digital-capabilities strong {
	font-size: 1.18rem;
	line-height: 1.35;
}

.gfw-digital-capabilities p {
	margin-top: 12px;
	font-size: .95rem;
	line-height: 1.78;
	color: rgba(246,243,238,.78);
}

.gfw-digital-capabilities li.is-active {
	border-color: rgba(255,255,255,.36);
	background: linear-gradient(120deg, rgba(255,0,95,.12), rgba(18,18,18,.96) 44%, rgba(8,8,8,.98));
	box-shadow: 0 42px 100px rgba(0,0,0,.5);
}

.gfw-digital-capabilities li.is-active p {
	color: rgba(246,243,238,.9);
}

@media (max-width: 680px) {
	.gfw-services-sequence { height: 390svh; }
	.gfw-digital-copy { width: calc(100vw - 36px); }
	.gfw-digital-copy__lead { width: 100%; }
	.gfw-digital-capabilities { min-height: 232px; margin-top: 16px; }
	.gfw-digital-capabilities li {
		width: calc(100vw - 42px);
		min-height: 156px;
		grid-template-columns: 42px 1fr;
		gap: 14px;
		padding: 18px 18px 18px 16px;
		border-radius: 18px;
	}
	.gfw-digital-capabilities li > span {
		width: 34px;
		height: 34px;
		font-size: .74rem;
	}
	.gfw-digital-capabilities strong { font-size: .96rem; }
	.gfw-digital-capabilities p { font-size: .82rem; line-height: 1.68; margin-top: 9px; }
}



/* v0.6.0 DIGITAL 2x2 card hold */
.gfw-services-sequence { height: 380svh; }
.gfw-digital-copy { width: min(44vw, 620px); }
.gfw-digital-copy__lead { width: min(100%, 520px); }
.gfw-digital-capabilities {
	position: relative;
	width: min(100%, 560px);
	height: 340px;
	min-height: 340px;
	margin-top: 28px;
}
.gfw-digital-capabilities li {
	position: absolute;
	left: 0;
	top: 0;
	width: 264px;
	min-height: 150px;
	padding: 22px 20px 18px 18px;
	grid-template-columns: 42px 1fr;
	gap: 14px;
	border-radius: 18px;
	border: 1px solid rgba(246,243,238,.18);
	background: linear-gradient(180deg, rgba(18,18,18,.96), rgba(8,8,8,.98));
	box-shadow: 0 28px 72px rgba(0,0,0,.42);
	backdrop-filter: blur(10px);
	will-change: transform, opacity, filter;
	transition: box-shadow 260ms ease, border-color 260ms ease, background 260ms ease;
}
.gfw-digital-capabilities li > span {
	width: 36px;
	height: 36px;
	font-size: .76rem;
}
.gfw-digital-capabilities strong {
	font-size: 1rem;
	line-height: 1.38;
}
.gfw-digital-capabilities p {
	margin-top: 10px;
	font-size: .82rem;
	line-height: 1.72;
	color: rgba(246,243,238,.82);
}
.gfw-digital-capabilities li.is-active {
	border-color: rgba(255,255,255,.36);
	background: linear-gradient(120deg, rgba(255,0,95,.12), rgba(18,18,18,.96) 44%, rgba(8,8,8,.98));
	box-shadow: 0 34px 86px rgba(0,0,0,.5);
}
.gfw-digital-capabilities li.is-summary {
	border-color: rgba(255,255,255,.22);
	box-shadow: 0 24px 64px rgba(0,0,0,.38);
}
@media (max-width: 1200px) {
	.gfw-services-sequence { height: 390svh; }
	.gfw-digital-copy { width: min(48vw, 620px); }
	.gfw-digital-capabilities { width: min(100%, 520px); height: 320px; min-height: 320px; }
	.gfw-digital-capabilities li { width: 244px; min-height: 142px; }
}
@media (max-width: 680px) {
	.gfw-services-sequence { height: 430svh; }
	.gfw-digital-copy { width: calc(100vw - 36px); }
	.gfw-digital-copy__lead { width: 100%; }
	.gfw-digital-capabilities { width: 100%; height: 292px; min-height: 292px; margin-top: 18px; }
	.gfw-digital-capabilities li {
		width: calc((100vw - 50px) / 2);
		min-height: 126px;
		padding: 14px 12px 12px;
		grid-template-columns: 30px 1fr;
		gap: 10px;
		border-radius: 15px;
	}
	.gfw-digital-capabilities li > span { width: 28px; height: 28px; font-size: .68rem; }
	.gfw-digital-capabilities strong { font-size: .79rem; }
	.gfw-digital-capabilities p { margin-top: 7px; font-size: .66rem; line-height: 1.55; }
}



/* v0.6.1 DIGITAL completion transition */
.gfw-services-sequence { height: 410svh; }

.gfw-services-sticky::after {
	content: "";
	position: absolute;
	z-index: 40;
	inset: 0;
	background: #000;
	opacity: var(--gfw-digital-blackout, 0);
	pointer-events: none;
	will-change: opacity;
}

.gfw-digital-capabilities::before {
	content: "";
	position: absolute;
	z-index: 70;
	left: 50%;
	top: 50%;
	width: 132px;
	aspect-ratio: 1;
	border-radius: 50%;
	background:
		radial-gradient(circle, rgba(255,255,255,.98) 0 3%, rgba(255,0,95,.98) 8%, rgba(255,0,95,.46) 28%, transparent 70%);
	box-shadow:
		0 0 28px rgba(255,255,255,.82),
		0 0 82px rgba(255,0,95,.74),
		0 0 170px rgba(255,0,95,.36);
	filter: blur(var(--gfw-core-blur, 20px));
	opacity: var(--gfw-core-opacity, 0);
	transform: translate(-50%, -50%) scale(var(--gfw-core-scale, 2.2));
	pointer-events: none;
	will-change: opacity, transform, filter;
}

.gfw-digital-capabilities li::after {
	content: "";
	position: absolute;
	z-index: 5;
	inset: -1px;
	padding: 2px;
	border-radius: inherit;
	background: conic-gradient(
		from var(--gfw-edge-angle, -90deg),
		transparent 0deg 292deg,
		rgba(255,0,95,.12) 306deg,
		rgba(255,255,255,.98) 326deg,
		rgba(255,0,95,.96) 345deg,
		transparent 360deg
	);
	-webkit-mask:
		linear-gradient(#000 0 0) content-box,
		linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	filter: drop-shadow(0 0 8px rgba(255,0,95,.96)) drop-shadow(0 0 18px rgba(255,0,95,.48));
	opacity: var(--gfw-edge-opacity, 0);
	pointer-events: none;
	will-change: opacity;
}

.gfw-digital-capabilities li.is-transitioning {
	border-color: rgba(255,0,95,.48);
	box-shadow:
		0 34px 86px rgba(0,0,0,.5),
		0 0 28px rgba(255,0,95,.16);
}

.js .gfw-next-field h2 {
	opacity: 0;
	filter: blur(16px);
	transform: translate3d(0, 13vh, 0) scale(1.08);
	will-change: opacity, transform, filter;
}

.js .gfw-next-field__count,
.js .gfw-next-field__label {
	opacity: 0;
	transform: translate3d(0, 18px, 0);
	will-change: opacity, transform;
}

@media (max-width: 1200px) {
	.gfw-services-sequence { height: 420svh; }
}

@media (max-width: 680px) {
	.gfw-services-sequence { height: 460svh; }
	.gfw-digital-capabilities::before { width: 96px; }
}



/* v0.6.3 deliberate stepped pacing */
.gfw-services-sequence { height: 520svh; }
.gfw-digital-capabilities li.is-lit {
	border-color: rgba(255,0,95,.32);
	box-shadow:
		0 24px 64px rgba(0,0,0,.38),
		0 0 22px rgba(255,0,95,.10);
}
@media (max-width: 1200px) {
	.gfw-services-sequence { height: 550svh; }
}
@media (max-width: 680px) {
	.gfw-services-sequence { height: 560svh; }
}


/* v0.6.4 natural scroll pacing */
.gfw-services-sequence { height: 620svh; }

@media (max-width: 1200px) {
	.gfw-services-sequence { height: 650svh; }
}

@media (max-width: 680px) {
	.gfw-services-sequence { height: 680svh; }
}



/* v0.7.3 GRAPHIC title handoff and poster rebuild */
.gfw-graphic-sequence { height: 420svh; }

.gfw-graphic-word {
	position: fixed;
	z-index: 60;
	left: 0;
	top: 0;
	margin: 0;
	color: var(--white);
	font-family: var(--display);
	font-size: clamp(9rem, 26vw, 20rem);
	font-weight: 900;
	line-height: .78;
	letter-spacing: -.08em;
	white-space: nowrap;
	pointer-events: none;
	opacity: 0;
	transform: translate3d(0, 0, 0) scale(.76);
	transform-origin: 0 0;
	will-change: opacity, transform, color, text-shadow;
}

.gfw-graphic-poster {
	background:
		linear-gradient(rgba(17,17,17,.035) 1px, transparent 1px),
		linear-gradient(90deg, rgba(17,17,17,.035) 1px, transparent 1px),
		#efe7dc;
	background-size: 34px 34px, 34px 34px, auto;
}

.gfw-graphic-part--photo-a {
	left: 7%;
	top: 10%;
	width: 36%;
	height: 31%;
}

.gfw-graphic-part--magenta {
	left: 45%;
	top: 11%;
	width: 40%;
	height: 27%;
}

.gfw-graphic-part--printdata {
	right: 7%;
	top: 8%;
	z-index: 5;
}

.gfw-graphic-part--headline {
	left: 39%;
	top: 39%;
	z-index: 4;
	width: 54%;
	color: #111;
}

.gfw-graphic-part--headline p {
	font-size: clamp(2rem, 3.35vw, 3.9rem);
	line-height: .88;
	letter-spacing: -.065em;
}

.gfw-graphic-part--blackband {
	left: 7%;
	top: 64%;
	z-index: 1;
	width: 47%;
	height: 7.5%;
}

.gfw-graphic-part--line-a {
	left: 7%;
	top: 61%;
	width: 53%;
}

.gfw-graphic-part--caption {
	left: 7%;
	top: 74%;
	z-index: 3;
}

.gfw-graphic-part--photo-b {
	right: 8%;
	bottom: 15%;
	width: 29%;
	height: 24%;
}

.gfw-graphic-part--identity { left: 8%; bottom: 7%; }
.gfw-graphic-part--editorial { left: 31%; bottom: 7%; }
.gfw-graphic-part--package { left: 55%; bottom: 7%; }

@media (max-width: 1100px) {
	.gfw-graphic-sequence { height: 440svh; }
	.gfw-graphic-part--headline p { font-size: clamp(1.9rem, 3.6vw, 3.25rem); }
}

@media (max-width: 680px) {
	.gfw-graphic-sequence { height: 460svh; }
	.gfw-graphic-word { font-size: clamp(6rem, 33vw, 9rem); }
	.gfw-graphic-part--headline { left: 38%; top: 38%; width: 56%; }
	.gfw-graphic-part--headline p { font-size: clamp(1.35rem, 7.4vw, 2.15rem); }
	.gfw-graphic-part--blackband { top: 65%; width: 48%; }
	.gfw-graphic-part--caption { top: 75%; }
}


/* v0.7.5 GRAPHIC title coordinate fix */
.gfw-graphic-word {
	left: 50%;
	top: 50%;
	transform: translate3d(-50%, -50%, 0) scale(.5);
	transform-origin: center center;
	will-change: left, top, opacity, transform, color, text-shadow;
}




/* v0.8.7 — reduced-motion keeps the storytelling sequence alive.
   Large zooms and decorative looping effects are reduced, but content still
   appears section by section instead of becoming a static all-at-once page. */
@media (prefers-reduced-motion: reduce) {
	html.gfw-loading,
	html.gfw-loading body {
		overflow: auto;
	}

	.gfw-loader,
	.gfw-hero-particles {
		display: none !important;
	}

	.gfw-digital-word::after {
		animation: none !important;
	}

	/* Keep a brief, low-distance title assembly on reduced-motion devices. */
	.js .gfw-kinetic-title__letter {
		opacity: 0;
		filter: none;
		transform: translate3d(0, 18px, 0) scale(.985);
	}

	html.gfw-reduced-motion.gfw-ready .gfw-kinetic-title__letter {
		opacity: 1;
		filter: none;
		transform: translate3d(0, 0, 0) scale(1);
		transition:
			opacity 420ms ease-out,
			transform 560ms cubic-bezier(.22, 1, .36, 1);
		transition-delay: var(--entry-delay);
	}

	html.gfw-reduced-motion .gfw-kinetic-title__line--goldfish .gfw-kinetic-title__letter:nth-child(odd),
	html.gfw-reduced-motion .gfw-kinetic-title__line--works .gfw-kinetic-title__letter:nth-child(even) {
		transform: translate3d(-16px, 12px, 0) scale(.985);
	}

	html.gfw-reduced-motion .gfw-kinetic-title__line--goldfish .gfw-kinetic-title__letter:nth-child(even),
	html.gfw-reduced-motion .gfw-kinetic-title__line--works .gfw-kinetic-title__letter:nth-child(odd) {
		transform: translate3d(16px, -12px, 0) scale(.985);
	}

	html.gfw-reduced-motion.gfw-ready .gfw-kinetic-title__line .gfw-kinetic-title__letter {
		transform: translate3d(0, 0, 0) scale(1);
	}

	.gfw-ui-window,
	.gfw-ui-phone,
	.gfw-ui-code,
	.gfw-ui-wireframe,
	.gfw-digital-capabilities li,
	.gfw-graphic-part,
	.gfw-print-layer,
	.gfw-print-squeegee {
		transition-duration: 1ms !important;
	}
}

@media print {
	.gfw-services-sequence { height: 100vh; }
	.gfw-services-sticky { position: relative; height: 100vh; }
	.gfw-digital-grid-bg,
	.gfw-digital-glow,
	.gfw-services-rail,
	.gfw-digital-word,
	.gfw-digital-copy,
	.gfw-digital-stage { opacity: 1 !important; transform: none !important; }
}

/* ---------- Existing sections: temporary, unchanged ---------- */
.gfw-grid{display:grid;grid-template-columns:repeat(3,1fr);margin:80px calc(var(--gutter)*-1) calc(clamp(90px,13vw,190px)*-1)}
.gfw-grid article{position:relative;min-height:500px;padding:clamp(32px,5vw,68px);border-top:1px solid var(--line);border-right:1px solid var(--line);overflow:hidden}
.gfw-grid article:after{content:"";position:absolute;inset:auto -30% -45% 20%;height:60%;background:var(--signal);border-radius:50%;filter:blur(85px);opacity:0;transition:.45s}
.gfw-grid article:hover:after{opacity:.42}
.gfw-grid b,.gfw-grid small,.gfw-grid h3,.gfw-grid p{position:relative;z-index:1}
.gfw-grid b{font-family:var(--display);font-size:2.8rem}
.gfw-grid small{display:block;margin-top:70px;font-family:var(--display);font-weight:800;letter-spacing:.15em}
.gfw-grid h3{margin:8px 0 18px;font-family:var(--display);font-size:clamp(3rem,5.7vw,6.3rem);line-height:.86;letter-spacing:-.055em}
.gfw-grid p{color:rgba(246,243,238,.72)}
.gfw-statement{min-height:100svh;padding:var(--gutter);display:flex;align-items:center;background:linear-gradient(90deg,transparent 49.6%,rgba(255,255,255,.92) 49.8% 50.2%,transparent 50.4%),radial-gradient(circle at 50% 50%,rgba(255,0,95,.78),transparent 28%),#050505}
.gfw-statement p{margin:0;font-family:var(--display);font-size:clamp(4rem,11.5vw,13rem);font-weight:900;line-height:.77;letter-spacing:-.065em}
.gfw-statement span{display:block}
.gfw-approach{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(50px,10vw,160px);align-items:end}
.gfw-approach>p{font-size:clamp(1rem,1.5vw,1.35rem);color:rgba(246,243,238,.72)}
.gfw-about{background:var(--white);color:var(--black);min-height:74svh}
.gfw-about h2{font-family:var(--display);font-size:clamp(4.8rem,12vw,14rem);font-weight:900;line-height:.78}
.gfw-about>p:last-child{width:min(560px,100%);margin:60px 0 0 auto}

/* ---------- Header choreography ----------
   FV中は完全に隠し、金魚が画面を支配した後にだけ表示する。 */
.js body.home .gfw-header {
	opacity: 0;
	transform: translate3d(0, -100%, 0);
	pointer-events: none;
	transition:
		opacity 420ms ease,
		transform 620ms cubic-bezier(.16, 1, .3, 1),
		background-color .25s,
		border-color .25s;
}

.js body.home .gfw-header.is-fv-complete {
	opacity: 1;
	transform: translate3d(0, 0, 0);
	pointer-events: auto;
}

@keyframes gfw-loader-breathe {
	from { transform: translate(-50%, -50%) scale(.72); opacity: .55; }
	to { transform: translate(-50%, -50%) scale(1.05); opacity: 1; }
}

@keyframes gfw-scroll-line {
	0% { transform: translateX(-115%); }
	52%, 100% { transform: translateX(245%); }
}

@keyframes gfw-particle-rise {
	0% { opacity: 0; transform: translate3d(0, 32px, 0) scale(.35); }
	18% { opacity: .85; }
	70% { opacity: .26; }
	100% { opacity: 0; transform: translate3d(24px, -100px, 0) scale(1.35); }
}

@media (max-width: 1000px) {
	.gfw-hero-sequence { height: 315svh; }
	.gfw-kinetic-title__line--goldfish { font-size: clamp(5rem, 16.5vw, 10rem); }
	.gfw-kinetic-title__line--works { font-size: clamp(7rem, 27vw, 16rem); }
	.gfw-fish-stage__image { width: 86vw; }
	.gfw-grid{grid-template-columns:1fr}
	.gfw-grid article{min-height:360px;border-right:0}
	.gfw-grid small{margin-top:32px}
}

@media (max-width: 680px) {
	.gfw-hero-sequence { height: 335svh; }
	.gfw-title-stage {
		padding: calc(82px + env(safe-area-inset-top)) 18px calc(24px + env(safe-area-inset-bottom));
	}
	.gfw-title-stage__eyebrow { font-size: .56rem; }
	.js .gfw-kinetic-title__letter {
		filter: blur(7px);
		transform:
			translate3d(var(--mobile-entry-x), var(--mobile-entry-y), 0)
			rotate(var(--mobile-entry-r))
			scale(.9);
	}
	html.gfw-ready .gfw-kinetic-title__letter {
		transition-duration: 760ms, 820ms, 980ms;
	}
	.gfw-kinetic-title { line-height: .76; }
	.gfw-kinetic-title__line--goldfish { font-size: clamp(3.75rem, 17.7vw, 7rem); }
	.gfw-kinetic-title__line--works { font-size: clamp(5.7rem, 29vw, 10rem); }
	.gfw-title-stage__footer { align-items: flex-start; flex-direction: column; gap: 16px; }
	.gfw-title-stage__scroll { align-self: flex-end; }
	.gfw-title-stage__lead { font-size: 1rem; }
	.gfw-fish-stage__image { width: 118vw; }
	.gfw-sequence-index { display: none; }
	.gfw-statement{min-height:78svh}
	.gfw-statement p{font-size:clamp(3.5rem,18vw,6.5rem)}
	.gfw-approach{grid-template-columns:1fr}
}



/* v0.5.0 DIGITAL readability rebuild */
.gfw-digital-copy {
	width: min(34vw, 520px);
}

.gfw-digital-copy__lead {
	width: min(100%, 460px);
}

.gfw-digital-capabilities {
	position: relative;
	display: block;
	width: min(100%, 500px);
	min-height: 264px;
	margin-top: 26px;
}

.gfw-digital-capabilities li {
	position: absolute;
	inset: 0 auto auto 0;
	display: grid;
	grid-template-columns: 56px 1fr;
	gap: 18px;
	align-items: start;
	width: min(100%, 500px);
	min-height: 190px;
	padding: 26px 26px 24px 24px;
	border: 1px solid rgba(246,243,238,.18);
	border-radius: 20px;
	background: linear-gradient(180deg, rgba(18,18,18,.96), rgba(8,8,8,.98));
	box-shadow: 0 35px 90px rgba(0,0,0,.44);
	backdrop-filter: blur(10px);
	will-change: opacity, transform, filter;
}

.gfw-digital-capabilities li > span {
	width: 42px;
	height: 42px;
	font-size: .86rem;
}

.gfw-digital-capabilities strong {
	font-size: 1.18rem;
	line-height: 1.35;
}

.gfw-digital-capabilities p {
	margin-top: 12px;
	font-size: .95rem;
	line-height: 1.78;
	color: rgba(246,243,238,.78);
}

.gfw-digital-capabilities li.is-active {
	border-color: rgba(255,255,255,.36);
	background: linear-gradient(120deg, rgba(255,0,95,.12), rgba(18,18,18,.96) 44%, rgba(8,8,8,.98));
	box-shadow: 0 42px 100px rgba(0,0,0,.5);
}

.gfw-digital-capabilities li.is-active p {
	color: rgba(246,243,238,.9);
}

@media (max-width: 680px) {
	.gfw-services-sequence { height: 390svh; }
	.gfw-digital-copy { width: calc(100vw - 36px); }
	.gfw-digital-copy__lead { width: 100%; }
	.gfw-digital-capabilities { min-height: 232px; margin-top: 16px; }
	.gfw-digital-capabilities li {
		width: calc(100vw - 42px);
		min-height: 156px;
		grid-template-columns: 42px 1fr;
		gap: 14px;
		padding: 18px 18px 18px 16px;
		border-radius: 18px;
	}
	.gfw-digital-capabilities li > span {
		width: 34px;
		height: 34px;
		font-size: .74rem;
	}
	.gfw-digital-capabilities strong { font-size: .96rem; }
	.gfw-digital-capabilities p { font-size: .82rem; line-height: 1.68; margin-top: 9px; }
}



/* v0.6.0 DIGITAL 2x2 card hold */
.gfw-services-sequence { height: 380svh; }
.gfw-digital-copy { width: min(44vw, 620px); }
.gfw-digital-copy__lead { width: min(100%, 520px); }
.gfw-digital-capabilities {
	position: relative;
	width: min(100%, 560px);
	height: 340px;
	min-height: 340px;
	margin-top: 28px;
}
.gfw-digital-capabilities li {
	position: absolute;
	left: 0;
	top: 0;
	width: 264px;
	min-height: 150px;
	padding: 22px 20px 18px 18px;
	grid-template-columns: 42px 1fr;
	gap: 14px;
	border-radius: 18px;
	border: 1px solid rgba(246,243,238,.18);
	background: linear-gradient(180deg, rgba(18,18,18,.96), rgba(8,8,8,.98));
	box-shadow: 0 28px 72px rgba(0,0,0,.42);
	backdrop-filter: blur(10px);
	will-change: transform, opacity, filter;
	transition: box-shadow 260ms ease, border-color 260ms ease, background 260ms ease;
}
.gfw-digital-capabilities li > span {
	width: 36px;
	height: 36px;
	font-size: .76rem;
}
.gfw-digital-capabilities strong {
	font-size: 1rem;
	line-height: 1.38;
}
.gfw-digital-capabilities p {
	margin-top: 10px;
	font-size: .82rem;
	line-height: 1.72;
	color: rgba(246,243,238,.82);
}
.gfw-digital-capabilities li.is-active {
	border-color: rgba(255,255,255,.36);
	background: linear-gradient(120deg, rgba(255,0,95,.12), rgba(18,18,18,.96) 44%, rgba(8,8,8,.98));
	box-shadow: 0 34px 86px rgba(0,0,0,.5);
}
.gfw-digital-capabilities li.is-summary {
	border-color: rgba(255,255,255,.22);
	box-shadow: 0 24px 64px rgba(0,0,0,.38);
}
@media (max-width: 1200px) {
	.gfw-services-sequence { height: 390svh; }
	.gfw-digital-copy { width: min(48vw, 620px); }
	.gfw-digital-capabilities { width: min(100%, 520px); height: 320px; min-height: 320px; }
	.gfw-digital-capabilities li { width: 244px; min-height: 142px; }
}
@media (max-width: 680px) {
	.gfw-services-sequence { height: 430svh; }
	.gfw-digital-copy { width: calc(100vw - 36px); }
	.gfw-digital-copy__lead { width: 100%; }
	.gfw-digital-capabilities { width: 100%; height: 292px; min-height: 292px; margin-top: 18px; }
	.gfw-digital-capabilities li {
		width: calc((100vw - 50px) / 2);
		min-height: 126px;
		padding: 14px 12px 12px;
		grid-template-columns: 30px 1fr;
		gap: 10px;
		border-radius: 15px;
	}
	.gfw-digital-capabilities li > span { width: 28px; height: 28px; font-size: .68rem; }
	.gfw-digital-capabilities strong { font-size: .79rem; }
	.gfw-digital-capabilities p { margin-top: 7px; font-size: .66rem; line-height: 1.55; }
}



/* v0.6.1 DIGITAL completion transition */
.gfw-services-sequence { height: 410svh; }

.gfw-services-sticky::after {
	content: "";
	position: absolute;
	z-index: 40;
	inset: 0;
	background: #000;
	opacity: var(--gfw-digital-blackout, 0);
	pointer-events: none;
	will-change: opacity;
}

.gfw-digital-capabilities::before {
	content: "";
	position: absolute;
	z-index: 70;
	left: 50%;
	top: 50%;
	width: 132px;
	aspect-ratio: 1;
	border-radius: 50%;
	background:
		radial-gradient(circle, rgba(255,255,255,.98) 0 3%, rgba(255,0,95,.98) 8%, rgba(255,0,95,.46) 28%, transparent 70%);
	box-shadow:
		0 0 28px rgba(255,255,255,.82),
		0 0 82px rgba(255,0,95,.74),
		0 0 170px rgba(255,0,95,.36);
	filter: blur(var(--gfw-core-blur, 20px));
	opacity: var(--gfw-core-opacity, 0);
	transform: translate(-50%, -50%) scale(var(--gfw-core-scale, 2.2));
	pointer-events: none;
	will-change: opacity, transform, filter;
}

.gfw-digital-capabilities li::after {
	content: "";
	position: absolute;
	z-index: 5;
	inset: -1px;
	padding: 2px;
	border-radius: inherit;
	background: conic-gradient(
		from var(--gfw-edge-angle, -90deg),
		transparent 0deg 292deg,
		rgba(255,0,95,.12) 306deg,
		rgba(255,255,255,.98) 326deg,
		rgba(255,0,95,.96) 345deg,
		transparent 360deg
	);
	-webkit-mask:
		linear-gradient(#000 0 0) content-box,
		linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	filter: drop-shadow(0 0 8px rgba(255,0,95,.96)) drop-shadow(0 0 18px rgba(255,0,95,.48));
	opacity: var(--gfw-edge-opacity, 0);
	pointer-events: none;
	will-change: opacity;
}

.gfw-digital-capabilities li.is-transitioning {
	border-color: rgba(255,0,95,.48);
	box-shadow:
		0 34px 86px rgba(0,0,0,.5),
		0 0 28px rgba(255,0,95,.16);
}

.js .gfw-next-field h2 {
	opacity: 0;
	filter: blur(16px);
	transform: translate3d(0, 13vh, 0) scale(1.08);
	will-change: opacity, transform, filter;
}

.js .gfw-next-field__count,
.js .gfw-next-field__label {
	opacity: 0;
	transform: translate3d(0, 18px, 0);
	will-change: opacity, transform;
}

@media (max-width: 1200px) {
	.gfw-services-sequence { height: 420svh; }
}

@media (max-width: 680px) {
	.gfw-services-sequence { height: 460svh; }
	.gfw-digital-capabilities::before { width: 96px; }
}



/* v0.6.3 deliberate stepped pacing */
.gfw-services-sequence { height: 520svh; }
.gfw-digital-capabilities li.is-lit {
	border-color: rgba(255,0,95,.32);
	box-shadow:
		0 24px 64px rgba(0,0,0,.38),
		0 0 22px rgba(255,0,95,.10);
}
@media (max-width: 1200px) {
	.gfw-services-sequence { height: 550svh; }
}
@media (max-width: 680px) {
	.gfw-services-sequence { height: 560svh; }
}



/* v0.8.5 SP DIGITAL rebuild — PC layout untouched */
@media (max-width: 680px) {
	.gfw-services-sequence {
		height: 520svh !important;
	}

	.gfw-services-sticky {
		padding-top: 0 !important;
		background:
			radial-gradient(circle at 68% 76%, rgba(255,0,95,.15), transparent 31%),
			linear-gradient(180deg, #020202, #050505 58%, #020202) !important;
	}

	.gfw-services-rail {
		left: 18px !important;
		top: calc(72px + env(safe-area-inset-top)) !important;
		width: calc(100% - 36px) !important;
		z-index: 18 !important;
	}

	.gfw-digital-word {
		left: 16px !important;
		top: 14.5vh !important;
		font-size: clamp(6.6rem, 34vw, 9rem) !important;
		line-height: .76 !important;
		z-index: 1 !important;
	}

	.gfw-digital-copy {
		left: 20px !important;
		top: 26vh !important;
		bottom: auto !important;
		width: calc(100vw - 40px) !important;
		z-index: 12 !important;
	}

	.gfw-digital-copy::before {
		inset: -18px -18px -14px -18px !important;
		background: linear-gradient(180deg, rgba(2,2,2,.96), rgba(2,2,2,.84) 72%, transparent) !important;
	}

	.gfw-digital-copy__eyebrow {
		margin-bottom: 9px !important;
		font-size: .68rem !important;
	}

	.gfw-digital-copy h2 {
		font-size: clamp(1.48rem, 6.7vw, 1.95rem) !important;
		line-height: 1.25 !important;
	}

	.gfw-digital-copy__lead {
		width: 100% !important;
		margin-top: 11px !important;
		padding-top: 10px !important;
		font-size: .68rem !important;
		line-height: 1.62 !important;
	}

	.gfw-digital-capabilities {
		width: 100% !important;
		height: 268px !important;
		min-height: 268px !important;
		margin-top: 14px !important;
	}

	.gfw-digital-capabilities li {
		width: calc((100% - 8px) / 2) !important;
		min-height: 122px !important;
		padding: 12px 10px 11px !important;
		grid-template-columns: 26px 1fr !important;
		gap: 8px !important;
		border-radius: 13px !important;
		background: linear-gradient(155deg, rgba(20,20,20,.98), rgba(7,7,7,.98)) !important;
	}

	.gfw-digital-capabilities li > span {
		width: 25px !important;
		height: 25px !important;
		font-size: .61rem !important;
	}

	.gfw-digital-capabilities strong {
		font-size: .72rem !important;
		line-height: 1.28 !important;
	}

	.gfw-digital-capabilities p {
		display: block !important;
		margin-top: 5px !important;
		font-size: .59rem !important;
		line-height: 1.46 !important;
	}

	.gfw-digital-stage {
		right: -18vw !important;
		bottom: -2vh !important;
		width: 114vw !important;
		height: 27vh !important;
		z-index: 3 !important;
		filter: brightness(.52) saturate(.72) !important;
	}

	.gfw-ui-window--main {
		right: 15% !important;
		width: 67% !important;
		height: 72% !important;
	}

	.gfw-ui-phone {
		right: 5% !important;
		width: 23% !important;
		height: 66% !important;
	}

	.gfw-ui-code {
		left: 4% !important;
		top: 1% !important;
		width: 39% !important;
	}

	.gfw-ui-wireframe {
		left: 1% !important;
		bottom: 0 !important;
		width: 38% !important;
		height: 34% !important;
	}

	.gfw-digital-capabilities::before {
		width: 84px !important;
	}
}



@media print {
	.gfw-loader { display: none !important; }
	.gfw-hero-sequence { height: 100vh; }
	.gfw-title-stage { opacity: 1 !important; transform: none !important; filter: none !important; }
	.gfw-kinetic-title__letter { opacity: 1 !important; filter: none !important; transform: none !important; }
	.gfw-fish-stage { display: none; }
}


/* =========================================================
   v0.8.6 — SP readability + complete reduced-motion fallback
========================================================= */

/* Normal-motion mobile: keep copy and artwork in separate vertical zones. */
@media (max-width: 680px) {
	.gfw-graphic-copy {
		left: 20px !important;
		top: 27vh !important;
		bottom: auto !important;
		width: calc(100vw - 40px) !important;
		z-index: 12 !important;
	}

	.gfw-graphic-copy::before {
		content: "";
		position: absolute;
		z-index: -1;
		inset: -14px -10px -18px -10px;
		background: linear-gradient(180deg, rgba(5,5,5,.94) 0%, rgba(5,5,5,.88) 72%, rgba(5,5,5,0) 100%);
		pointer-events: none;
	}

	.gfw-graphic-copy__eyebrow {
		margin-bottom: 11px !important;
		font-size: .66rem !important;
	}

	.gfw-graphic-copy h2 {
		font-size: clamp(1.4rem, 6.25vw, 1.82rem) !important;
		line-height: 1.27 !important;
		letter-spacing: -.025em !important;
	}

	.gfw-graphic-copy__lead {
		width: 100% !important;
		margin-top: 12px !important;
		padding-top: 10px !important;
		font-size: .67rem !important;
		line-height: 1.62 !important;
	}

	.gfw-graphic-canvas {
		right: 4vw !important;
		top: auto !important;
		bottom: 3vh !important;
		width: 92vw !important;
		height: 32vh !important;
		z-index: 5 !important;
	}

	.gfw-graphic-poster {
		inset: 6% 4.5% !important;
	}

	.gfw-graphic-part--headline {
		left: 39% !important;
		top: 37% !important;
		width: 55% !important;
	}

	.gfw-graphic-part--headline p {
		font-size: clamp(1.16rem, 6.3vw, 1.82rem) !important;
	}

	.gfw-graphic-part--caption p {
		font-size: .52rem !important;
	}

	.gfw-print-copy h2 {
		font-size: clamp(1.72rem, 7.1vw, 2.35rem) !important;
		line-height: 1.16 !important;
	}

	.gfw-print-copy__lead {
		font-size: .7rem !important;
		line-height: 1.62 !important;
	}
}

/*
 * Reduced-motion users receive a complete static composition.
 * No content depends on scroll-driven JavaScript, and every section remains readable.
 */





/* v0.8.9 — crisp reduced-motion fish and tighter PRINT ending */
@media (max-width: 680px) {
	.gfw-print-sequence {
		height: 360svh !important;
	}

	.gfw-print-stage {
		height: 38vh !important;
	}

	.gfw-print-copy__lead {
		max-width: 92% !important;
	}
}

@media (max-width: 680px) and (prefers-reduced-motion: reduce) {
	.gfw-fish-stage__image {
		filter: drop-shadow(0 0 16px rgba(255,255,255,.06)) !important;
		will-change: auto;
	}

	.gfw-print-sequence {
		height: 330svh !important;
	}
}


/* =========================================================
   v0.9.1 — ONE DIRECTION
========================================================= */
.gfw-one-direction-sequence {
	position: relative;
	height: 300svh;
	background: #030303;
	overflow: clip;
}

.gfw-one-direction-sticky {
	position: sticky;
	top: 0;
	height: 100svh;
	overflow: hidden;
	isolation: isolate;
	background:
		radial-gradient(circle at 72% 50%, rgba(255,0,95,.10), transparent 31%),
		linear-gradient(135deg, #020202, #070707 52%, #020202);
}

.gfw-one-direction-grid,
.gfw-one-direction-glow,
.gfw-one-direction-copy,
.gfw-one-direction-stage,
.gfw-one-direction-final {
	position: absolute;
}

.gfw-one-direction-grid {
	z-index: -3;
	inset: 0;
	background-image:
		linear-gradient(rgba(246,243,238,.04) 1px, transparent 1px),
		linear-gradient(90deg, rgba(246,243,238,.04) 1px, transparent 1px);
	background-size: 76px 76px;
	mask-image: linear-gradient(90deg, transparent 0 8%, #000 25% 100%);
	opacity: .42;
}

.gfw-one-direction-glow {
	z-index: -2;
	left: 72%;
	top: 50%;
	width: min(56vw, 920px);
	aspect-ratio: 1;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(255,0,95,.18), rgba(255,0,95,.035) 39%, transparent 70%);
	filter: blur(46px);
	transform: translate(-50%, -50%) scale(.76);
	opacity: 0;
}

.gfw-one-direction-copy {
	z-index: 8;
	left: clamp(26px, 5vw, 78px);
	top: 50%;
	width: min(38vw, 570px);
	transform: translateY(-50%);
}

.gfw-one-direction-copy__eyebrow {
	margin: 0 0 20px;
	font-family: var(--display);
	font-size: .76rem;
	font-weight: 900;
	letter-spacing: .17em;
	color: var(--signal);
}

.gfw-one-direction-copy h2 {
	margin: 0;
	font-size: clamp(2.1rem, 4.05vw, 4.25rem);
	font-weight: 500;
	line-height: 1.18;
	letter-spacing: -.045em;
}

.gfw-one-direction-copy__lead {
	width: min(100%, 500px);
	margin: 25px 0 0;
	padding-top: 20px;
	border-top: 1px solid rgba(246,243,238,.2);
	font-size: clamp(.8rem, .94vw, .98rem);
	line-height: 1.9;
	color: rgba(246,243,238,.72);
}

.gfw-one-direction-stage {
	z-index: 5;
	right: 1vw;
	top: 50%;
	width: min(61vw, 1090px);
	height: min(76vh, 760px);
	transform: translateY(-50%);
}

.gfw-one-direction-map {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	overflow: visible;
}

.gfw-one-direction-map path {
	fill: none;
	vector-effect: non-scaling-stroke;
}

.gfw-one-direction-map__guide {
	stroke: rgba(246,243,238,.06);
	stroke-width: 1;
	stroke-dasharray: 3 10;
}

.gfw-one-direction-map__entry {
	stroke: rgba(246,243,238,.68);
	stroke-width: 1.3;
	stroke-linecap: round;
	stroke-dasharray: 1;
	stroke-dashoffset: 1;
}

.gfw-one-direction-map__domain {
	stroke: rgba(246,243,238,.72);
	stroke-width: 1.25;
	stroke-linecap: round;
	stroke-dasharray: 1;
	stroke-dashoffset: 1;
}

.gfw-one-direction-map__route {
	stroke: var(--signal);
	stroke-width: 2;
	stroke-linecap: round;
	stroke-dasharray: 1;
	stroke-dashoffset: 1;
	filter: drop-shadow(0 0 8px rgba(255,0,95,.48));
}

.gfw-one-direction-entry {
	position: absolute;
	left: 3.8%;
	display: grid;
	grid-template-columns: 30px 1fr;
	align-items: center;
	gap: 11px;
	font-family: var(--display);
	white-space: nowrap;
}

.gfw-one-direction-entry--direct { top: 27.5%; }
.gfw-one-direction-entry--team { top: 66.3%; }

.gfw-one-direction-entry span,
.gfw-one-direction-domains span {
	display: grid;
	place-items: center;
	border: 1px solid rgba(246,243,238,.26);
	border-radius: 50%;
	color: rgba(246,243,238,.72);
}

.gfw-one-direction-entry span {
	width: 25px;
	height: 25px;
	font-size: .56rem;
}

.gfw-one-direction-entry strong {
	font-size: clamp(.72rem, .92vw, .94rem);
	letter-spacing: .14em;
	color: rgba(246,243,238,.9);
}

.gfw-one-direction-hub {
	position: absolute;
	left: 50%;
	top: 50%;
	width: clamp(126px, 11vw, 164px);
	aspect-ratio: 1;
	display: grid;
	place-content: center;
	text-align: center;
	border: 1px solid rgba(246,243,238,.34);
	border-radius: 50%;
	background: rgba(3,3,3,.9);
	box-shadow: 0 0 0 15px rgba(255,255,255,.018), 0 0 64px rgba(255,0,95,.13);
	transform: translate(-50%, -50%);
	font-family: var(--display);
}

.gfw-one-direction-hub::before,
.gfw-one-direction-hub::after {
	content: "";
	position: absolute;
	inset: 9px;
	border: 1px solid rgba(255,0,95,.18);
	border-radius: 50%;
}

.gfw-one-direction-hub::after {
	inset: -11px;
	border-color: rgba(246,243,238,.06);
}

.gfw-one-direction-hub i {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--signal);
	box-shadow: 0 0 18px rgba(255,0,95,.82);
	transform: translate(-50%, -50%);
}

.gfw-one-direction-hub span,
.gfw-one-direction-hub strong {
	position: relative;
	z-index: 2;
	line-height: 1;
}

.gfw-one-direction-hub span {
	font-size: .62rem;
	letter-spacing: .16em;
	color: rgba(246,243,238,.62);
	transform: translateY(-13px);
}

.gfw-one-direction-hub strong {
	font-size: clamp(.98rem, 1.35vw, 1.25rem);
	letter-spacing: .08em;
	transform: translateY(15px);
}

.gfw-one-direction-domains {
	position: absolute;
	inset: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gfw-one-direction-domains li {
	position: absolute;
	display: grid;
	grid-template-columns: 25px 1fr;
	align-items: center;
	gap: 9px;
	min-width: 118px;
	font-family: var(--display);
}

.gfw-one-direction-domains li:nth-child(1) { left: 71.6%; top: 25%; }
.gfw-one-direction-domains li:nth-child(2) { left: 78.8%; top: 48.5%; }
.gfw-one-direction-domains li:nth-child(3) { left: 71.6%; top: 72%; }

.gfw-one-direction-domains span {
	width: 22px;
	height: 22px;
	border-color: rgba(255,0,95,.4);
	font-size: .51rem;
	color: var(--signal);
}

.gfw-one-direction-domains strong {
	font-size: clamp(.67rem, .82vw, .84rem);
	letter-spacing: .15em;
	color: rgba(246,243,238,.9);
}

.gfw-one-direction-target {
	position: absolute;
	left: 91.8%;
	top: 50%;
	display: flex;
	align-items: center;
	gap: 8px;
	font-family: var(--display);
	transform: translateY(-50%);
}

.gfw-one-direction-target i {
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--signal);
	box-shadow: 0 0 16px rgba(255,0,95,.8);
}

.gfw-one-direction-target span {
	font-size: .58rem;
	font-weight: 900;
	letter-spacing: .13em;
	color: rgba(246,243,238,.68);
}

.gfw-one-direction-final {
	z-index: 9;
	right: clamp(28px, 5vw, 78px);
	bottom: 5.5vh;
	margin: 0;
	font-family: var(--display);
	line-height: .9;
	text-align: right;
}

.gfw-one-direction-final span,
.gfw-one-direction-final strong {
	display: block;
}

.gfw-one-direction-final span {
	font-size: clamp(1.05rem, 1.9vw, 2rem);
	font-weight: 800;
	letter-spacing: .08em;
	color: rgba(246,243,238,.48);
}

.gfw-one-direction-final strong {
	margin-top: 8px;
	font-size: clamp(2.5rem, 5.6vw, 6.2rem);
	letter-spacing: -.045em;
}

.js .gfw-one-direction-copy,
.js .gfw-one-direction-stage,
.js .gfw-one-direction-final {
	opacity: 0;
}

.js .gfw-one-direction-copy {
	transform: translate3d(0, calc(-50% + 5vh), 0);
}

.js .gfw-one-direction-stage {
	transform: translate3d(3vw, -50%, 0) scale(.975);
}

.js .gfw-one-direction-entry,
.js .gfw-one-direction-hub,
.js .gfw-one-direction-domains li,
.js .gfw-one-direction-target {
	opacity: 0;
}

.gfw-next-field--about {
	min-height: 72svh;
}

@media (max-width: 1100px) {
	.gfw-one-direction-sequence { height: 320svh; }
	.gfw-one-direction-copy { width: min(41vw, 540px); }
	.gfw-one-direction-stage { right: -3vw; width: 65vw; }
}

@media (max-width: 680px) {
	.gfw-one-direction-sequence { height: 340svh; }

	.gfw-one-direction-copy {
		left: 20px;
		top: 9vh;
		width: calc(100vw - 40px);
		transform: none;
	}

	.gfw-one-direction-copy__eyebrow {
		margin-bottom: 11px;
		font-size: .62rem;
	}

	.gfw-one-direction-copy h2 {
		font-size: clamp(1.7rem, 7.7vw, 2.45rem);
		line-height: 1.2;
	}

	.gfw-one-direction-copy__lead {
		width: 100%;
		margin-top: 13px;
		padding-top: 12px;
		font-size: .7rem;
		line-height: 1.68;
	}

	.gfw-one-direction-stage {
		left: 14px;
		right: auto;
		top: auto;
		bottom: 5vh;
		width: calc(100vw - 28px);
		height: 49vh;
		transform: none;
	}

	.gfw-one-direction-map { overflow: hidden; }

	.gfw-one-direction-entry {
		left: 1.5%;
		grid-template-columns: 22px 1fr;
		gap: 7px;
	}

	.gfw-one-direction-entry--direct { top: 27%; }
	.gfw-one-direction-entry--team { top: 66%; }

	.gfw-one-direction-entry span {
		width: 20px;
		height: 20px;
		font-size: .47rem;
	}

	.gfw-one-direction-entry strong {
		font-size: .57rem;
		letter-spacing: .1em;
	}

	.gfw-one-direction-hub {
		left: 49.8%;
		width: 91px;
	}

	.gfw-one-direction-hub span { font-size: .48rem; }
	.gfw-one-direction-hub strong { font-size: .76rem; }

	.gfw-one-direction-domains li {
		grid-template-columns: 18px 1fr;
		gap: 6px;
		min-width: 76px;
	}

	.gfw-one-direction-domains li:nth-child(1) { left: 69%; top: 25%; }
	.gfw-one-direction-domains li:nth-child(2) { left: 76%; top: 48.5%; }
	.gfw-one-direction-domains li:nth-child(3) { left: 69%; top: 72%; }

	.gfw-one-direction-domains span {
		width: 17px;
		height: 17px;
		font-size: .41rem;
	}

	.gfw-one-direction-domains strong {
		font-size: .54rem;
		letter-spacing: .1em;
	}

	.gfw-one-direction-target {
		left: 90%;
		gap: 5px;
	}

	.gfw-one-direction-target i {
		width: 7px;
		height: 7px;
	}

	.gfw-one-direction-target span {
		display: none;
	}

	.gfw-one-direction-final {
		right: 20px;
		bottom: 2.8vh;
	}

	.gfw-one-direction-final span { font-size: .79rem; }
	.gfw-one-direction-final strong { font-size: clamp(1.72rem, 8.8vw, 2.7rem); }

	.js .gfw-one-direction-copy {
		transform: translate3d(0, 4vh, 0);
	}

	.js .gfw-one-direction-stage {
		transform: translate3d(0, 3vh, 0) scale(.975);
	}

	.gfw-next-field--about {
		min-height: 66svh;
	}
}

@media (prefers-reduced-motion: reduce) {
	.gfw-one-direction-map__route { filter: none; }
}


/* v0.9.2 — ONE DIRECTION readability and clean ABOUT handoff */
.gfw-one-direction-sequence {
	height: 318svh;
}

.gfw-one-direction-copy {
	width: min(36vw, 560px);
}

.gfw-one-direction-copy__lead {
	width: min(100%, 520px);
	font-size: clamp(.9rem, 1.02vw, 1.06rem);
	line-height: 1.85;
	color: rgba(246,243,238,.82);
}

.gfw-one-direction-stage {
	right: -1.5vw;
	width: min(65vw, 1160px);
	height: min(80vh, 800px);
}

.gfw-one-direction-entry strong {
	font-size: clamp(.8rem, 1.04vw, 1.06rem);
	color: rgba(246,243,238,.98);
}

.gfw-one-direction-entry span {
	border-color: rgba(246,243,238,.42);
	color: rgba(246,243,238,.86);
}

.gfw-one-direction-hub {
	width: clamp(142px, 12.5vw, 184px);
	border-color: rgba(246,243,238,.48);
}

.gfw-one-direction-hub span {
	font-size: .7rem;
	color: rgba(246,243,238,.76);
}

.gfw-one-direction-hub strong {
	font-size: clamp(1.12rem, 1.52vw, 1.42rem);
}

.gfw-one-direction-domains strong {
	font-size: clamp(.75rem, .94vw, .96rem);
	color: rgba(246,243,238,.98);
}

.gfw-one-direction-domains span {
	border-color: rgba(255,0,95,.62);
}

.gfw-one-direction-target span {
	font-size: .67rem;
	color: rgba(246,243,238,.82);
}

.gfw-one-direction-final {
	bottom: 7vh;
}

@media (max-width: 1100px) {
	.gfw-one-direction-sequence {
		height: 330svh;
	}

	.gfw-one-direction-copy {
		width: min(39vw, 535px);
	}

	.gfw-one-direction-stage {
		right: -4vw;
		width: 68vw;
	}
}

@media (max-width: 680px) {
	.gfw-one-direction-sequence {
		height: 352svh;
	}

	.gfw-one-direction-copy {
		top: 7.5vh;
	}

	.gfw-one-direction-copy__lead {
		max-width: 36em;
		font-size: .78rem;
		line-height: 1.74;
		color: rgba(246,243,238,.84);
	}

	.gfw-one-direction-stage {
		left: 8px;
		bottom: 4.5vh;
		width: calc(100vw - 16px);
		height: 52vh;
	}

	.gfw-one-direction-entry {
		grid-template-columns: 24px 1fr;
		gap: 8px;
	}

	.gfw-one-direction-entry span {
		width: 22px;
		height: 22px;
		font-size: .5rem;
	}

	.gfw-one-direction-entry strong {
		font-size: .64rem;
		color: rgba(246,243,238,.98);
	}

	.gfw-one-direction-hub {
		width: 101px;
	}

	.gfw-one-direction-hub span {
		font-size: .52rem;
	}

	.gfw-one-direction-hub strong {
		font-size: .84rem;
	}

	.gfw-one-direction-domains li {
		grid-template-columns: 19px 1fr;
		gap: 7px;
	}

	.gfw-one-direction-domains span {
		width: 18px;
		height: 18px;
		font-size: .43rem;
	}

	.gfw-one-direction-domains strong {
		font-size: .6rem;
		color: rgba(246,243,238,.98);
	}

	.gfw-one-direction-final {
		bottom: 5vh;
	}
}


/* =========================================================
   v0.10.0 — ABOUT
   A light editorial scene after the dark service sequences.
========================================================= */
.gfw-about-sequence {
	position: relative;
	height: 310svh;
	background: var(--white);
	color: var(--black);
}

.gfw-about-sticky {
	position: sticky;
	top: 0;
	height: 100svh;
	overflow: hidden;
	isolation: isolate;
	background:
		linear-gradient(90deg, rgba(5,5,5,.04) 1px, transparent 1px),
		linear-gradient(rgba(5,5,5,.04) 1px, transparent 1px),
		var(--white);
	background-size: clamp(54px, 6vw, 92px) clamp(54px, 6vw, 92px);
}

.gfw-about-grid,
.gfw-about-glow,
.gfw-about-word,
.gfw-about-index,
.gfw-about-frame,
.gfw-about-copy,
.gfw-about-statement {
	position: absolute;
}

.gfw-about-grid {
	z-index: -2;
	inset: 0;
	background:
		linear-gradient(112deg, transparent 0 47%, rgba(5,5,5,.08) 47.08% 47.18%, transparent 47.26%),
		linear-gradient(90deg, transparent 0 73%, rgba(255,0,95,.14) 73.08% 73.18%, transparent 73.26%);
	opacity: 0;
}

.gfw-about-glow {
	z-index: -1;
	left: 77%;
	top: 68%;
	width: min(50vw, 760px);
	aspect-ratio: 1;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(255,0,95,.24), rgba(255,0,95,.06) 38%, transparent 70%);
	filter: blur(28px);
	opacity: 0;
	transform: translate3d(-50%, -50%, 0) scale(.7);
}

.gfw-about-word {
	z-index: 0;
	left: 50%;
	top: 49%;
	margin: 0;
	font-family: var(--display);
	font-size: clamp(10rem, 27vw, 30rem);
	font-weight: 900;
	line-height: .7;
	letter-spacing: -.085em;
	color: rgba(5,5,5,.072);
	white-space: nowrap;
	transform: translate3d(-50%, -50%, 0);
	will-change: opacity, transform, filter;
}

.gfw-about-index {
	z-index: 5;
	left: var(--gutter);
	top: calc(92px + env(safe-area-inset-top));
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0;
	font-family: var(--display);
	font-size: .65rem;
	font-weight: 900;
	letter-spacing: .16em;
}

.gfw-about-index span:first-child {
	font-size: 1.25rem;
	letter-spacing: -.03em;
}

.gfw-about-index i {
	width: clamp(44px, 6vw, 92px);
	height: 1px;
	background: rgba(5,5,5,.28);
}

.gfw-about-index span:last-child {
	color: rgba(5,5,5,.58);
}

.gfw-about-frame {
	z-index: 4;
	right: clamp(28px, 6vw, 106px);
	top: 50%;
	width: min(39vw, 620px);
	min-height: 58vh;
	padding: clamp(28px, 3.2vw, 54px);
	border: 1px solid rgba(5,5,5,.22);
	background: rgba(246,243,238,.7);
	box-shadow: 0 26px 80px rgba(5,5,5,.08);
	backdrop-filter: blur(12px);
	transform: translate3d(3vw, -50%, 0);
	will-change: opacity, transform;
}

.gfw-about-frame::before,
.gfw-about-frame::after {
	content: "";
	position: absolute;
	width: 12px;
	height: 12px;
	border-color: var(--signal);
	border-style: solid;
}

.gfw-about-frame::before {
	left: -1px;
	top: -1px;
	border-width: 2px 0 0 2px;
}

.gfw-about-frame::after {
	right: -1px;
	bottom: -1px;
	border-width: 0 2px 2px 0;
}

.gfw-about-frame__caption,
.gfw-about-frame__coordinate {
	margin: 0;
	font-family: var(--display);
	font-size: .61rem;
	font-weight: 900;
	letter-spacing: .17em;
	color: rgba(5,5,5,.54);
}

.gfw-about-frame__line {
	position: absolute;
	left: clamp(35px, 4.2vw, 70px);
	top: clamp(72px, 7vw, 110px);
	bottom: clamp(54px, 5vw, 82px);
	width: 1px;
	background: linear-gradient(var(--signal), rgba(5,5,5,.22));
	transform: scaleY(0);
	transform-origin: top;
	box-shadow: 0 0 14px rgba(255,0,95,.22);
}

.gfw-about-facts {
	display: grid;
	gap: clamp(28px, 4.8vh, 52px);
	margin: clamp(60px, 8vh, 90px) 0 0 clamp(45px, 6vw, 94px);
}

.gfw-about-facts div {
	position: relative;
	display: grid;
	grid-template-columns: minmax(88px, .45fr) 1fr;
	gap: 28px;
	align-items: baseline;
}

.gfw-about-facts div::before {
	content: "";
	position: absolute;
	left: calc(clamp(45px, 6vw, 94px) * -1 - 4px);
	top: .52em;
	width: 9px;
	height: 9px;
	border: 2px solid var(--signal);
	border-radius: 50%;
	background: var(--white);
	box-shadow: 0 0 0 5px rgba(255,0,95,.08);
}

.gfw-about-facts dt,
.gfw-about-facts dd {
	margin: 0;
	font-family: var(--display);
	font-weight: 900;
}

.gfw-about-facts dt {
	display: flex;
	align-items: center;
	gap: 11px;
	font-size: clamp(.68rem, .78vw, .8rem);
	letter-spacing: .14em;
	color: rgba(5,5,5,.58);
}

.gfw-about-facts dt span {
	color: var(--signal);
}

.gfw-about-facts dd {
	font-size: clamp(.88rem, 1.18vw, 1.2rem);
	letter-spacing: .07em;
	line-height: 1.35;
}

.gfw-about-frame__coordinate {
	position: absolute;
	right: clamp(24px, 3vw, 48px);
	bottom: clamp(22px, 2.7vw, 42px);
}

.gfw-about-copy {
	z-index: 6;
	left: var(--gutter);
	bottom: clamp(76px, 10vh, 120px);
	width: min(46vw, 780px);
	will-change: opacity, transform, filter;
}

.gfw-about-copy__eyebrow {
	margin: 0 0 18px;
	font-family: var(--display);
	font-size: .7rem;
	font-weight: 900;
	letter-spacing: .18em;
	color: var(--signal);
}

.gfw-about-copy h2 {
	margin: 0;
	font-family: var(--display);
	font-size: clamp(3rem, 5.65vw, 6.8rem);
	font-weight: 900;
	line-height: .96;
	letter-spacing: -.055em;
}

.gfw-about-copy__body {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(22px, 3vw, 48px);
	width: min(100%, 750px);
	margin-top: clamp(24px, 3.5vh, 42px);
	padding-top: clamp(20px, 2.7vh, 32px);
	border-top: 1px solid rgba(5,5,5,.2);
}

.gfw-about-copy__body p {
	margin: 0;
	font-size: clamp(.86rem, 1vw, 1rem);
	line-height: 1.85;
	color: rgba(5,5,5,.72);
}

.gfw-about-statement {
	z-index: 7;
	right: clamp(28px, 5vw, 78px);
	bottom: clamp(22px, 3.8vh, 46px);
	display: flex;
	gap: .33em;
	margin: 0;
	font-family: var(--display);
	font-size: clamp(1rem, 1.55vw, 1.55rem);
	font-weight: 900;
	letter-spacing: .04em;
	color: rgba(5,5,5,.34);
}

.gfw-about-statement strong {
	color: var(--signal);
}

.js .gfw-about-word,
.js .gfw-about-index,
.js .gfw-about-frame,
.js .gfw-about-facts div,
.js .gfw-about-copy,
.js .gfw-about-statement {
	opacity: 0;
}

.js .gfw-about-frame {
	transform: translate3d(3vw, -50%, 0);
}

.js .gfw-about-copy {
	transform: translate3d(0, 5vh, 0);
}

.gfw-header.is-on-light {
	color: var(--black);
}

.gfw-header.is-on-light.is-scrolled {
	background: rgba(246,243,238,.88);
	border-bottom-color: rgba(5,5,5,.13);
}

.gfw-header.is-on-light .gfw-nav-toggle {
	color: var(--black);
}

.gfw-next-field--contact {
	min-height: 70svh;
}

@media (max-width: 1100px) {
	.gfw-about-sequence {
		height: 325svh;
	}

	.gfw-about-frame {
		right: 32px;
		width: 43vw;
	}

	.gfw-about-copy {
		width: 50vw;
	}

	.gfw-about-copy h2 {
		font-size: clamp(2.8rem, 5.7vw, 5.7rem);
	}
}

@media (max-width: 680px) {
	.gfw-about-sequence {
		height: 355svh;
	}

	.gfw-about-sticky {
		background-size: 56px 56px;
	}

	.gfw-about-word {
		left: 50%;
		top: 13.5vh;
		font-size: clamp(7.2rem, 35vw, 10.5rem);
		transform: translate3d(-50%, 0, 0);
	}

	.gfw-about-index {
		left: 20px;
		top: calc(76px + env(safe-area-inset-top));
		gap: 9px;
		font-size: .52rem;
	}

	.gfw-about-index span:first-child {
		font-size: .95rem;
	}

	.gfw-about-index i {
		width: 32px;
	}

	.gfw-about-frame {
		left: 20px;
		right: auto;
		top: 23vh;
		width: calc(100vw - 40px);
		min-height: 31vh;
		padding: 20px;
		transform: none;
		backdrop-filter: blur(8px);
	}

	.gfw-about-frame__caption,
	.gfw-about-frame__coordinate {
		font-size: .48rem;
		letter-spacing: .12em;
	}

	.gfw-about-frame__line {
		left: 31px;
		top: 56px;
		bottom: 42px;
	}

	.gfw-about-facts {
		gap: 15px;
		margin: 33px 0 0 35px;
	}

	.gfw-about-facts div {
		grid-template-columns: 66px 1fr;
		gap: 9px;
	}

	.gfw-about-facts div::before {
		left: -39px;
		top: .4em;
		width: 7px;
		height: 7px;
	}

	.gfw-about-facts dt {
		gap: 5px;
		font-size: .51rem;
		letter-spacing: .09em;
	}

	.gfw-about-facts dd {
		font-size: .65rem;
		letter-spacing: .035em;
	}

	.gfw-about-frame__coordinate {
		right: 18px;
		bottom: 14px;
	}

	.gfw-about-copy {
		left: 20px;
		bottom: 10vh;
		width: calc(100vw - 40px);
	}

	.gfw-about-copy__eyebrow {
		margin-bottom: 10px;
		font-size: .58rem;
	}

	.gfw-about-copy h2 {
		font-size: clamp(2rem, 9vw, 3.1rem);
		line-height: 1.04;
	}

	.gfw-about-copy__body {
		grid-template-columns: 1fr;
		gap: 7px;
		margin-top: 15px;
		padding-top: 13px;
	}

	.gfw-about-copy__body p {
		font-size: .72rem;
		line-height: 1.7;
	}

	.gfw-about-statement {
		right: 20px;
		bottom: 3.3vh;
		font-size: .76rem;
	}

	.js .gfw-about-frame {
		transform: translate3d(0, 4vh, 0);
	}

	.gfw-header.is-on-light .gfw-nav.is-open {
		color: var(--white);
	}
}

@media (prefers-reduced-motion: reduce) {
	.gfw-about-glow {
		filter: none;
	}

	.gfw-about-frame {
		backdrop-filter: none;
	}
}


/* =========================================================
   v0.10.1 — ABOUT line-break audit
   Locks the headline into two meaningful lines and prevents
   service names or key phrases from splitting mid-word.
========================================================= */
.gfw-about-copy {
	top: clamp(205px, 27vh, 310px);
	bottom: auto;
	width: min(49vw, 820px);
}

.gfw-about-copy h2 {
	font-size: clamp(3rem, 4.05vw, 5.1rem);
	line-height: 1.02;
	letter-spacing: -.05em;
}

.gfw-about-copy__line {
	display: block;
	white-space: nowrap;
}

.gfw-about-copy__body {
	grid-template-columns: 1fr;
	gap: .55rem;
	width: min(100%, 46rem);
	margin-top: clamp(22px, 3vh, 34px);
	padding-top: clamp(18px, 2.4vh, 28px);
}

.gfw-about-copy__body p {
	max-width: 46rem;
	line-height: 1.8;
}

.gfw-nowrap {
	white-space: nowrap;
}

@media (max-width: 1100px) {
	.gfw-about-copy {
		top: clamp(195px, 26vh, 275px);
		width: 52vw;
	}

	.gfw-about-copy h2 {
		font-size: clamp(2.65rem, 4.15vw, 3.65rem);
	}
}

@media (max-width: 680px) {
	.gfw-about-copy {
		top: auto;
		bottom: 9vh;
		width: calc(100vw - 40px);
	}

	.gfw-about-copy h2 {
		font-size: clamp(1.55rem, 7.55vw, 3.15rem);
		line-height: 1.08;
		letter-spacing: -.045em;
	}

	.gfw-about-copy__body {
		gap: .42rem;
		margin-top: 14px;
		padding-top: 12px;
	}

	.gfw-about-copy__body p {
		font-size: .72rem;
		line-height: 1.68;
	}
}


/* =========================================================
   v0.10.2 — ONE DIRECTION headline line-break correction
========================================================= */
.gfw-one-direction-copy {
	width: min(41.5vw, 660px);
}

.gfw-one-direction-copy h2 {
	font-size: clamp(2.75rem, 3.25vw, 3.18rem);
	line-height: 1.12;
	letter-spacing: -.045em;
}

.gfw-one-direction-copy__line {
	display: block;
	white-space: nowrap;
}

@media (max-width: 1100px) and (min-width: 681px) {
	.gfw-one-direction-copy {
		width: min(43.5vw, 520px);
	}

	.gfw-one-direction-copy h2 {
		font-size: clamp(2.2rem, 3.45vw, 2.45rem);
	}
}

@media (max-width: 680px) {
	.gfw-one-direction-copy {
		width: calc(100vw - 40px);
	}

	.gfw-one-direction-copy h2 {
		font-size: clamp(1.65rem, 7vw, 2.1rem);
		line-height: 1.13;
	}

	.gfw-one-direction-copy__line {
		white-space: nowrap;
	}
}


/* =========================================================
   v0.11.0 — CONTACT
========================================================= */
.gfw-contact-sequence {
	position: relative;
	height: 310svh;
	background: var(--black);
	color: var(--white);
	border-top: 1px solid rgba(5,5,5,.16);
}

.gfw-contact-sticky {
	position: sticky;
	top: 0;
	height: 100svh;
	overflow: hidden;
	isolation: isolate;
	background:
		linear-gradient(90deg, rgba(246,243,238,.045) 1px, transparent 1px),
		linear-gradient(rgba(246,243,238,.045) 1px, transparent 1px),
		var(--black);
	background-size: clamp(54px, 6vw, 92px) clamp(54px, 6vw, 92px);
}

.gfw-contact-sticky::before {
	content: "";
	position: absolute;
	z-index: 8;
	inset: 0 0 auto;
	height: 3px;
	background: var(--signal);
	transform-origin: left;
	box-shadow: 0 0 24px rgba(255,0,95,.52);
}

.gfw-contact-grid,
.gfw-contact-glow,
.gfw-contact-word,
.gfw-contact-index,
.gfw-contact-copy,
.gfw-contact-panel,
.gfw-contact-final {
	position: absolute;
}

.gfw-contact-grid {
	z-index: -2;
	inset: 0;
	background:
		linear-gradient(113deg, transparent 0 43%, rgba(255,0,95,.18) 43.06% 43.14%, transparent 43.2%),
		linear-gradient(90deg, transparent 0 76%, rgba(246,243,238,.08) 76.06% 76.14%, transparent 76.2%);
	opacity: 0;
}

.gfw-contact-glow {
	z-index: -1;
	left: 76%;
	top: 56%;
	width: min(58vw, 920px);
	aspect-ratio: 1;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(255,0,95,.26), rgba(255,0,95,.075) 38%, transparent 70%);
	filter: blur(40px);
	opacity: 0;
	transform: translate3d(-50%, -50%, 0) scale(.72);
}

.gfw-contact-word {
	z-index: 0;
	left: 50%;
	top: 48%;
	margin: 0;
	font-family: var(--display);
	font-size: clamp(10rem, 25vw, 28rem);
	font-weight: 900;
	line-height: .72;
	letter-spacing: -.085em;
	color: rgba(246,243,238,.052);
	white-space: nowrap;
	transform: translate3d(-50%, -50%, 0);
	will-change: opacity, transform, filter;
}

.gfw-contact-index {
	z-index: 5;
	left: var(--gutter);
	top: calc(92px + env(safe-area-inset-top));
	display: flex;
	align-items: center;
	gap: 11px;
	margin: 0;
	font-family: var(--display);
	font-size: .62rem;
	font-weight: 900;
	letter-spacing: .16em;
	color: rgba(246,243,238,.58);
}

.gfw-contact-index strong {
	font-size: 1.28rem;
	line-height: 1;
	color: var(--white);
	letter-spacing: -.03em;
}

.gfw-contact-index i {
	width: clamp(42px, 6vw, 88px);
	height: 1px;
	background: rgba(246,243,238,.26);
}

.gfw-contact-copy {
	z-index: 6;
	left: var(--gutter);
	top: 50%;
	width: min(48vw, 780px);
	transform: translate3d(0, -50%, 0);
	will-change: opacity, transform, filter;
}

.gfw-contact-copy__eyebrow {
	margin: 0 0 20px;
	font-family: var(--display);
	font-size: .72rem;
	font-weight: 900;
	letter-spacing: .18em;
	color: var(--signal);
}

.gfw-contact-copy h2 {
	margin: 0;
	font-family: var(--display);
	font-size: clamp(3rem, 4.7vw, 5.8rem);
	font-weight: 900;
	line-height: 1.02;
	letter-spacing: -.055em;
}

.gfw-contact-copy h2 span {
	display: block;
	white-space: nowrap;
}

.gfw-contact-copy__lead {
	width: min(100%, 42rem);
	margin: clamp(24px, 3.6vh, 40px) 0 0;
	padding-top: clamp(20px, 2.8vh, 30px);
	border-top: 1px solid rgba(246,243,238,.18);
	font-size: clamp(.86rem, 1vw, 1rem);
	line-height: 1.85;
	color: rgba(246,243,238,.72);
}

.gfw-contact-copy__modes {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 22px 0 0;
	padding: 0;
	list-style: none;
}

.gfw-contact-copy__modes li {
	padding: 7px 11px;
	border: 1px solid rgba(246,243,238,.2);
	font-family: var(--display);
	font-size: .58rem;
	font-weight: 900;
	letter-spacing: .13em;
	color: rgba(246,243,238,.72);
}

.gfw-contact-panel {
	z-index: 7;
	right: clamp(24px, 4vw, 68px);
	top: 50%;
	width: min(43vw, 680px);
	height: min(69vh, 700px);
	border: 1px solid rgba(246,243,238,.22);
	background: rgba(5,5,5,.74);
	box-shadow: 0 28px 100px rgba(0,0,0,.34);
	backdrop-filter: blur(14px);
	transform: translate3d(4vw, -50%, 0);
	will-change: opacity, transform;
}

.gfw-contact-panel::before,
.gfw-contact-panel::after {
	content: "";
	position: absolute;
	z-index: 4;
	width: 14px;
	height: 14px;
	border-style: solid;
	border-color: var(--signal);
}

.gfw-contact-panel::before {
	left: -1px;
	top: -1px;
	border-width: 2px 0 0 2px;
}

.gfw-contact-panel::after {
	right: -1px;
	bottom: -1px;
	border-width: 0 2px 2px 0;
}

.gfw-contact-panel__head {
	position: absolute;
	z-index: 3;
	inset: 0 0 auto;
	display: flex;
	justify-content: space-between;
	gap: 20px;
	padding: 18px 22px;
	border-bottom: 1px solid rgba(246,243,238,.14);
	font-family: var(--display);
	font-size: .58rem;
	font-weight: 900;
	letter-spacing: .15em;
	color: rgba(246,243,238,.52);
}

.gfw-contact-route {
	position: absolute;
	z-index: 0;
	inset: 9% 5% 12%;
	width: 90%;
	height: 79%;
	overflow: visible;
}

.gfw-contact-route path {
	fill: none;
	stroke: var(--signal);
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-dasharray: 1240;
	stroke-dashoffset: 1240;
	filter: drop-shadow(0 0 7px rgba(255,0,95,.48));
}

.gfw-contact-steps {
	position: absolute;
	z-index: 2;
	inset: 17% 8% 27%;
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-template-rows: 1fr 1fr;
	gap: 10%;
	margin: 0;
	padding: 0;
	list-style: none;
	pointer-events: none;
}

.gfw-contact-steps li {
	align-self: start;
	width: fit-content;
	padding: 10px 12px;
	border: 1px solid rgba(246,243,238,.17);
	background: rgba(5,5,5,.82);
	box-shadow: 0 10px 26px rgba(0,0,0,.25);
}

.gfw-contact-steps li:nth-child(2) {
	justify-self: end;
	align-self: center;
}

.gfw-contact-steps li:nth-child(3) {
	grid-column: 1 / 3;
	justify-self: center;
	align-self: end;
}

.gfw-contact-steps span,
.gfw-contact-steps strong {
	display: block;
	font-family: var(--display);
	font-weight: 900;
}

.gfw-contact-steps span {
	margin-bottom: 5px;
	font-size: .5rem;
	letter-spacing: .14em;
	color: var(--signal);
}

.gfw-contact-steps strong {
	font-size: clamp(.64rem, .82vw, .82rem);
	line-height: 1.18;
	letter-spacing: .08em;
	color: rgba(246,243,238,.9);
}

.gfw-contact-action {
	position: absolute;
	z-index: 5;
	right: clamp(24px, 3.2vw, 52px);
	bottom: clamp(36px, 5.5vh, 62px);
	display: grid;
	place-items: center;
	width: clamp(150px, 13vw, 205px);
	aspect-ratio: 1;
	border: 1px solid var(--signal);
	border-radius: 50%;
	color: var(--white);
	text-decoration: none;
	background: rgba(255,0,95,.09);
	box-shadow: 0 0 0 10px rgba(255,0,95,.04), 0 0 44px rgba(255,0,95,.14);
	transition: color .25s ease, background .25s ease, transform .25s ease, box-shadow .25s ease;
}

.gfw-contact-action::before {
	content: "";
	position: absolute;
	inset: 9px;
	border: 1px solid rgba(255,255,255,.12);
	border-radius: inherit;
}

.gfw-contact-action span {
	position: relative;
	z-index: 1;
	font-size: clamp(.78rem, .9vw, .94rem);
	font-weight: 700;
	letter-spacing: .08em;
}

.gfw-contact-action strong {
	position: absolute;
	right: 24%;
	top: 20%;
	font-family: var(--display);
	font-size: clamp(1.25rem, 1.8vw, 2rem);
	line-height: 1;
	color: var(--signal);
}

.gfw-contact-action:hover,
.gfw-contact-action:focus-visible {
	color: var(--black);
	background: var(--signal);
	box-shadow: 0 0 0 12px rgba(255,0,95,.08), 0 0 70px rgba(255,0,95,.35);
	transform: scale(1.035);
	outline: none;
}

.gfw-contact-action:hover strong,
.gfw-contact-action:focus-visible strong {
	color: var(--black);
}

.gfw-contact-panel__note {
	position: absolute;
	z-index: 3;
	left: 22px;
	bottom: 18px;
	margin: 0;
	font-family: var(--display);
	font-size: .5rem;
	font-weight: 900;
	letter-spacing: .14em;
	color: rgba(246,243,238,.36);
}

.gfw-contact-final {
	z-index: 8;
	left: var(--gutter);
	bottom: clamp(25px, 4vh, 48px);
	display: flex;
	gap: .32em;
	margin: 0;
	font-family: var(--display);
	font-size: clamp(1rem, 1.65vw, 1.7rem);
	font-weight: 900;
	letter-spacing: .045em;
	color: rgba(246,243,238,.34);
}

.gfw-contact-final strong {
	color: var(--signal);
}

.js .gfw-contact-word,
.js .gfw-contact-index,
.js .gfw-contact-copy,
.js .gfw-contact-panel,
.js .gfw-contact-steps li,
.js .gfw-contact-action,
.js .gfw-contact-final {
	opacity: 0;
}

.js .gfw-contact-copy {
	transform: translate3d(0, calc(-50% + 5vh), 0);
}

.js .gfw-contact-panel {
	transform: translate3d(4vw, -50%, 0);
}

.gfw-footer {
	min-height: 190px;
	padding: 44px var(--gutter) calc(44px + env(safe-area-inset-bottom));
	background: var(--black);
	border-top: 1px solid rgba(246,243,238,.15);
	align-items: flex-end;
}

.gfw-footer__brand strong {
	display: block;
	font-family: var(--display);
	font-size: clamp(1.25rem, 2vw, 2rem);
	font-weight: 900;
	letter-spacing: .07em;
}

.gfw-footer__brand p {
	margin: 6px 0 0;
	font-family: var(--display);
	letter-spacing: .13em;
}

.gfw-footer__meta {
	display: flex;
	align-items: center;
	gap: clamp(22px, 4vw, 58px);
}

.gfw-footer__meta a {
	font-family: var(--display);
	font-size: .66rem;
	font-weight: 900;
	letter-spacing: .14em;
	text-decoration: none;
	color: rgba(246,243,238,.62);
}

.gfw-footer__meta a:hover,
.gfw-footer__meta a:focus-visible {
	color: var(--signal);
}

@media (max-width: 1100px) {
	.gfw-contact-sequence {
		height: 325svh;
	}

	.gfw-contact-copy {
		width: 49vw;
	}

	.gfw-contact-copy h2 {
		font-size: clamp(2.65rem, 4.4vw, 4.2rem);
	}

	.gfw-contact-panel {
		right: 24px;
		width: 45vw;
	}
}

@media (max-width: 680px) {
	.gfw-contact-sequence {
		height: 360svh;
	}

	.gfw-contact-sticky {
		background-size: 56px 56px;
	}

	.gfw-contact-word {
		left: 50%;
		top: 13.5vh;
		font-size: clamp(6.7rem, 31vw, 9.5rem);
		transform: translate3d(-50%, 0, 0);
	}

	.gfw-contact-index {
		left: 20px;
		top: calc(76px + env(safe-area-inset-top));
		gap: 8px;
		font-size: .48rem;
	}

	.gfw-contact-index strong {
		font-size: .92rem;
	}

	.gfw-contact-index i {
		width: 28px;
	}

	.gfw-contact-copy {
		left: 20px;
		top: 18vh;
		width: calc(100vw - 40px);
		transform: none;
	}

	.gfw-contact-copy__eyebrow {
		margin-bottom: 10px;
		font-size: .56rem;
	}

	.gfw-contact-copy h2 {
		font-size: clamp(1.72rem, 7vw, 2.35rem);
		line-height: 1.1;
	}

	.gfw-contact-copy__lead {
		margin-top: 14px;
		padding-top: 12px;
		font-size: .72rem;
		line-height: 1.68;
	}

	.gfw-contact-copy__modes {
		margin-top: 12px;
	}

	.gfw-contact-copy__modes li {
		padding: 5px 8px;
		font-size: .48rem;
	}

	.gfw-contact-panel {
		left: 20px;
		right: auto;
		top: auto;
		bottom: 6vh;
		width: calc(100vw - 40px);
		height: 47vh;
		transform: none;
		backdrop-filter: blur(8px);
	}

	.gfw-contact-panel__head {
		padding: 12px 14px;
		font-size: .46rem;
	}

	.gfw-contact-route {
		inset: 9% 3% 13%;
		width: 94%;
		height: 78%;
	}

	.gfw-contact-steps {
		inset: 15% 5% 29%;
		gap: 8%;
	}

	.gfw-contact-steps li {
		padding: 7px 8px;
	}

	.gfw-contact-steps span {
		font-size: .4rem;
	}

	.gfw-contact-steps strong {
		font-size: .52rem;
	}

	.gfw-contact-action {
		right: 16px;
		bottom: 19px;
		width: 116px;
	}

	.gfw-contact-action span {
		font-size: .64rem;
		letter-spacing: .05em;
	}

	.gfw-contact-action strong {
		font-size: 1.15rem;
	}

	.gfw-contact-panel__note {
		left: 14px;
		bottom: 12px;
		font-size: .4rem;
	}

	.gfw-contact-final {
		display: none;
	}

	.js .gfw-contact-copy,
	.js .gfw-contact-panel {
		transform: translate3d(0, 4vh, 0);
	}

	.gfw-footer {
		min-height: 210px;
		padding-top: 34px;
		padding-bottom: calc(34px + env(safe-area-inset-bottom));
	}

	.gfw-footer__meta {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.gfw-contact-glow {
		filter: none;
	}

	.gfw-contact-panel {
		backdrop-filter: none;
	}

	.gfw-contact-action {
		transition: none;
	}
}


/* =========================================================
   v0.11.7 — Smart SME Supporter certification in ABOUT
========================================================= */
.gfw-about-frame {
	min-height: 63vh;
}

.gfw-about-frame__coordinate {
	top: clamp(27px, 2.8vw, 45px);
	right: clamp(24px, 3vw, 48px);
	bottom: auto;
}

.gfw-about-facts {
	gap: clamp(22px, 3.7vh, 40px);
	margin-top: clamp(54px, 7vh, 78px);
}

.gfw-about-certification {
	position: absolute;
	left: clamp(28px, 3.4vw, 55px);
	right: clamp(28px, 3.4vw, 55px);
	bottom: clamp(28px, 3.2vw, 49px);
	display: flex;
	align-items: center;
	gap: clamp(16px, 2vw, 28px);
	min-height: 84px;
	padding-top: clamp(18px, 2vw, 28px);
	border-top: 1px solid rgba(5,5,5,.18);
	color: var(--black);
	text-decoration: none;
}

.gfw-about-certification__logo {
	flex: 0 0 auto;
	display: grid;
	place-items: center;
	width: clamp(88px, 9vw, 132px);
	min-height: 66px;
	padding: 9px 11px;
	border: 1px solid rgba(5,5,5,.13);
	background: #fff;
}

.gfw-about-certification__logo img {
	display: block;
	width: 100%;
	max-height: 74px;
	object-fit: contain;
	filter: none;
}

.gfw-about-certification__copy {
	display: grid;
	min-width: 0;
	gap: 2px;
}

.gfw-about-certification__copy small,
.gfw-about-certification__copy strong,
.gfw-about-certification__copy em {
	display: block;
	font-style: normal;
}

.gfw-about-certification__copy small {
	font-size: .56rem;
	font-weight: 700;
	letter-spacing: .12em;
	color: rgba(5,5,5,.48);
}

.gfw-about-certification__copy strong {
	font-family: var(--display);
	font-size: clamp(.95rem, 1.28vw, 1.28rem);
	font-weight: 900;
	line-height: 1.1;
	letter-spacing: .035em;
}

.gfw-about-certification__copy em {
	font-size: clamp(.55rem, .64vw, .68rem);
	font-weight: 700;
	line-height: 1.45;
	letter-spacing: .05em;
	color: rgba(5,5,5,.62);
}

.gfw-about-certification:hover strong,
.gfw-about-certification:focus-visible strong {
	color: var(--signal);
}

.gfw-about-certification:focus-visible {
	outline: 2px solid var(--signal);
	outline-offset: 5px;
}

@media (max-width: 1100px) {
	.gfw-about-frame {
		min-height: 64vh;
	}

	.gfw-about-certification {
		left: 26px;
		right: 26px;
	}
}

@media (max-width: 680px) {
	.gfw-about-frame {
		top: 21.5vh;
		min-height: 40.5vh;
	}

	.gfw-about-frame__coordinate {
		top: 18px;
		right: 17px;
		bottom: auto;
	}

	.gfw-about-facts {
		gap: 13px;
		margin-top: 31px;
	}

	.gfw-about-certification {
		left: 19px;
		right: 19px;
		bottom: 16px;
		gap: 10px;
		min-height: 60px;
		padding-top: 12px;
	}

	.gfw-about-certification__logo {
		width: 72px;
		min-height: 48px;
		padding: 5px 7px;
	}

	.gfw-about-certification__logo img {
		max-height: 50px;
	}

	.gfw-about-certification__copy small {
		font-size: .43rem;
	}

	.gfw-about-certification__copy strong {
		font-size: .72rem;
	}

	.gfw-about-certification__copy em {
		font-size: .43rem;
	}

	.gfw-about-copy {
		bottom: 7.5vh;
	}
}


/* =========================================================
   v0.11.8 — certification copy de-duplication
========================================================= */
.gfw-about-certification {
	gap: clamp(20px, 2.3vw, 32px);
}

.gfw-about-certification__logo {
	width: clamp(104px, 10.2vw, 150px);
	min-height: 72px;
	padding: 10px 12px;
}

.gfw-about-certification__logo img {
	max-height: 82px;
}

.gfw-about-certification__copy {
	gap: 4px;
}

.gfw-about-certification__copy strong {
	font-size: clamp(.95rem, 1.18vw, 1.18rem);
	letter-spacing: .025em;
}

.gfw-about-certification__copy em {
	font-size: clamp(.58rem, .67vw, .72rem);
	letter-spacing: .06em;
}

@media (max-width: 680px) {
	.gfw-about-certification {
		gap: 12px;
	}

	.gfw-about-certification__logo {
		width: 80px;
		min-height: 52px;
		padding: 6px 8px;
	}

	.gfw-about-certification__logo img {
		max-height: 54px;
	}

	.gfw-about-certification__copy strong {
		font-size: .7rem;
	}

	.gfw-about-certification__copy em {
		font-size: .46rem;
	}
}


/* =========================================================
   v0.12.0 — real-device mobile final audit
========================================================= */
@media (max-width: 680px) {
	.gfw-about-frame {
		top: 20.5vh;
		min-height: 39vh;
	}

	.gfw-about-copy {
		bottom: 7.2vh;
	}
}


/* =========================================================
   v0.12.1 — mobile ABOUT two-scene handoff
========================================================= */
@media (max-width: 680px) {
	.gfw-about-copy {
		bottom: 8.2vh;
	}

	.gfw-about-copy h2 {
		font-size: clamp(1.48rem, 7.1vw, 2.2rem);
		line-height: 1.08;
	}

	.gfw-about-copy__body {
		margin-top: 13px;
		padding-top: 12px;
	}

	.gfw-about-copy__body p {
		font-size: .7rem;
		line-height: 1.68;
	}
}


/* =========================================================
   v0.12.2 — mobile ABOUT keeps Smart SME block visible
========================================================= */
.gfw-about-profile {
	position: relative;
	min-height: inherit;
	transition: opacity .3s ease, transform .3s ease;
}

.gfw-about-certification {
	transition: opacity .3s ease, transform .3s ease;
	will-change: transform, opacity;
}

@media (max-width: 680px) {
	.gfw-about-frame {
		overflow: hidden;
	}

	.gfw-about-profile {
		min-height: 22vh;
	}

	.gfw-about-copy {
		bottom: 5.2vh;
	}

	.gfw-about-copy__body {
		margin-top: 15px;
	}
}


/* =========================================================
   v0.12.3 — mobile ABOUT keeps all profile facts visible
========================================================= */
@media (max-width: 680px) {
	.gfw-about-frame {
		top: 17.5vh;
		min-height: 34vh;
	}

	.gfw-about-profile {
		min-height: 21vh;
	}

	.gfw-about-facts {
		gap: 11px;
		margin-top: 29px;
	}

	.gfw-about-certification {
		bottom: 12px;
		min-height: 56px;
		padding-top: 10px;
	}

	.gfw-about-copy {
		bottom: 4.2vh;
	}

	.gfw-about-copy__body {
		gap: .34rem;
		margin-top: 12px;
		padding-top: 10px;
	}

	.gfw-about-copy__body p {
		font-size: .68rem;
		line-height: 1.62;
	}
}
