:root {
	--foam-white: #FFFFFF;
	--mist-blue: #E4F3F4;
	--water-blue: #72AEEB;
	--aqua: #78D4CF;
	--text-ink: #2B383C;
	--text-ink-rgb: 43, 56, 60;
	--deep-water: #2D596D;
	--deep-water-rgb: 45, 89, 109;
	--water-ink: #3F6E8C;
	--water-ink-rgb: 63, 110, 140;
	--coral: #F47F78;
	--lemon: #F3D760;
	--creature-core: #FFFFFF;
	--creature-mid: #F4FBFC;
	--creature-edge: #DDF3F5;
	--paper: var(--foam-white);
	--paper-pure: var(--foam-white);
	--ink: var(--text-ink);
	--ink-soft: rgba(var(--text-ink-rgb), 0.76);
	--navy: var(--deep-water);
	--line: rgba(var(--text-ink-rgb), 0.22);
	--line-soft: rgba(var(--text-ink-rgb), 0.11);
	--link-color: var(--water-ink);
	--signal: var(--coral);
	--gutter: clamp(24px, 5.55vw, 88px);
	--header-height: 94px;
	--ease-out: cubic-bezier(0.22, 1, 0.36, 1);
	--font-jp: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", YuGothic, "Noto Sans JP", -apple-system, BlinkMacSystemFont, sans-serif;
	--font-en: "Nunito", var(--font-jp);
	--font-sans: var(--font-jp);
	--font-display-latin: var(--font-en);
}

html {
	scroll-behavior: smooth;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

body {
	min-width: 320px;
	margin: 0;
	overflow-x: hidden;
	overflow-y: auto;
	background: var(--paper);
	color: var(--ink);
	font-family: var(--font-en);
	font-feature-settings: "palt" 1;
}

body.menu-open {
	overflow: hidden;
}

button,
input,
textarea,
select {
	font: inherit;
}

a {
	color: inherit;
}

::selection {
	background: var(--navy);
	color: var(--paper-pure);
}

.skip-link {
	position: fixed;
	z-index: 10000;
	top: 12px;
	left: 12px;
	padding: 10px 14px;
	background: var(--navy);
	color: #FFFFFF;
	font-size: 12px;
	transform: translateY(-180%);
	transition: transform 180ms ease;
}

.skip-link:focus {
	transform: translateY(0);
}

.site-view {
	min-height: 100svh;
	background: var(--paper);
}

.global-header {
	position: fixed;
	z-index: 100;
	top: 0;
	right: 0;
	left: 0;
	display: flex;
	height: var(--header-height);
	align-items: center;
	justify-content: space-between;
	padding: 0 var(--gutter);
	background: linear-gradient(to bottom, rgba(255, 255, 255, 0.97), rgba(255, 255, 255, 0));
	transition: height 420ms var(--ease-out), background-color 320ms ease, border-color 320ms ease;
}

.global-header.is-condensed {
	height: 68px;
	border-bottom: 1px solid var(--line-soft);
	background: rgba(255, 255, 255, 0.93);
	backdrop-filter: blur(14px);
}

.site-brand {
	z-index: 4;
	display: inline-flex;
	align-items: center;
	gap: 13px;
	width: max-content;
	text-decoration: none;
}

.site-brand__mark {
	display: grid;
	width: 31px;
	height: 31px;
	flex: 0 0 auto;
	place-items: center;
	border: 1px solid var(--navy);
	border-radius: 50%;
	color: var(--navy);
	font-family: var(--font-sans);
	font-size: 12px;
	line-height: 1;
}

.site-brand__name {
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.12em;
}

.global-nav ul {
	display: flex;
	align-items: center;
	gap: clamp(20px, 2.3vw, 38px);
	margin: 0;
	padding: 0;
	list-style: none;
}

.global-nav a {
	position: relative;
	display: flex;
	align-items: baseline;
	gap: 7px;
	padding: 9px 0;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.13em;
	text-decoration: none;
}

.global-nav a::after {
	position: absolute;
	right: 0;
	bottom: 3px;
	left: 0;
	height: 1px;
	background: var(--navy);
	content: "";
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 320ms var(--ease-out);
}

.global-nav a:hover::after,
.global-nav a:focus-visible::after,
.global-nav a[aria-current="page"]::after {
	transform: scaleX(1);
	transform-origin: left;
}

.global-nav a span {
	color: var(--ink);
	font-size: 7px;
	letter-spacing: 0;
}

.global-nav__index,
.menu-toggle {
	display: none;
}

:focus-visible {
	outline: 1px solid var(--navy);
	outline-offset: 5px;
}

.home-hero {
	position: relative;
	display: grid;
	min-height: 100svh;
	grid-template-columns: minmax(320px, 0.8fr) minmax(430px, 1.2fr);
	align-items: center;
	gap: 3vw;
	padding: calc(var(--header-height) + 4vh) var(--gutter) 8vh;
	overflow: hidden;
}

.home-hero::after {
	position: absolute;
	right: var(--gutter);
	bottom: 0;
	left: var(--gutter);
	height: 1px;
	background: var(--line-soft);
	content: "";
}

.home-hero__copy {
	position: relative;
	z-index: 2;
	align-self: center;
	padding-top: 3vh;
}

.section-code {
	display: flex;
	align-items: center;
	gap: 16px;
	margin: 0 0 clamp(30px, 5.5vh, 62px);
	color: var(--ink);
	font-size: 9px;
	font-weight: 600;
	letter-spacing: 0.2em;
}

.section-code::before {
	width: 26px;
	height: 1px;
	background: var(--navy);
	content: "";
}

.section-code span {
	color: var(--navy);
	letter-spacing: 0.05em;
}

.home-hero h1 {
	margin: 0;
	font-family: var(--font-sans);
	font-size: clamp(48px, 5.1vw, 82px);
	font-weight: 600;
	letter-spacing: -0.035em;
	line-height: 1.34;
}

.home-hero__lead {
	margin: clamp(34px, 5.5vh, 58px) 0 0 clamp(8px, 4.2vw, 68px);
	color: var(--ink-soft);
	font-size: clamp(12px, 1vw, 15px);
	font-weight: 400;
	letter-spacing: 0.07em;
	line-height: 2.2;
}

.thought-field {
	position: relative;
	width: min(55vw, 790px);
	aspect-ratio: 1.2;
	justify-self: end;
	color: var(--navy);
	transform: translate(4vw, 3vh);
}

.thought-field__axis,
.thought-field__orbit,
.thought-field__point,
.thought-field__label,
.thought-field__number {
	position: absolute;
}

.thought-field__axis {
	background: var(--line);
}

.thought-field__axis--horizontal {
	top: 51%;
	right: 0;
	left: 0;
	height: 1px;
}

.thought-field__axis--vertical {
	top: 3%;
	bottom: 3%;
	left: 49%;
	width: 1px;
}

.thought-field__axis::after {
	position: absolute;
	width: 4px;
	height: 4px;
	border: 1px solid var(--navy);
	background: var(--paper);
	content: "";
	transform: rotate(45deg);
}

.thought-field__axis--horizontal::after {
	top: -2px;
	right: 0;
}

.thought-field__axis--vertical::after {
	top: 0;
	left: -2px;
}

.thought-field__orbit {
	top: 50%;
	left: 49%;
	border: 1px solid rgba(var(--text-ink-rgb), 0.55);
	border-radius: 50%;
	transform: translate(-50%, -50%) rotate(-14deg);
}

.thought-field__orbit--outer {
	width: 91%;
	height: 48%;
}

.thought-field__orbit--inner {
	width: 57%;
	height: 30%;
	border-color: rgba(var(--text-ink-rgb), 0.28);
	transform: translate(-50%, -50%) rotate(12deg);
}

.thought-field__point {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--navy);
}

.thought-field__point--origin {
	top: calc(51% - 3px);
	left: calc(49% - 3px);
}

.thought-field__point--word {
	top: 36%;
	left: 27%;
	background: var(--signal);
}

.thought-field__point--world {
	top: 61%;
	right: 12%;
	background: var(--paper);
	box-shadow: 0 0 0 1px var(--navy);
}

.thought-field__label {
	padding: 3px 7px;
	background: var(--paper);
	font-size: 9px;
	letter-spacing: 0.13em;
}

.thought-field__label--heart {
	top: 52.5%;
	left: 50.5%;
}

.thought-field__label--word {
	top: 30%;
	left: 18%;
}

.thought-field__label--world {
	top: 64%;
	right: 7%;
}

.thought-field__number {
	right: 0;
	bottom: 5%;
	color: var(--ink);
	font-size: 8px;
	letter-spacing: 0.19em;
}

.scroll-cue {
	position: absolute;
	right: var(--gutter);
	bottom: 31px;
	display: flex;
	align-items: center;
	gap: 14px;
	font-size: 8px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-decoration: none;
}

.scroll-cue i {
	position: relative;
	display: block;
	width: 48px;
	height: 1px;
	background: var(--navy);
}

.scroll-cue i::after {
	position: absolute;
	top: -2px;
	right: 0;
	width: 5px;
	height: 5px;
	border-right: 1px solid var(--navy);
	border-bottom: 1px solid var(--navy);
	content: "";
	transform: rotate(45deg);
}

.home-introduction {
	display: grid;
	min-height: 84svh;
	grid-template-columns: minmax(150px, 0.33fr) minmax(520px, 1fr);
	gap: clamp(30px, 8vw, 140px);
	align-items: start;
	padding: clamp(110px, 16vw, 230px) var(--gutter);
}

.home-introduction > div {
	max-width: 860px;
}

.section-code--vertical {
	align-self: start;
}

.eyebrow {
	margin: 0 0 35px;
	color: var(--ink);
	font-size: 8px;
	font-weight: 600;
	letter-spacing: 0.19em;
}

.home-introduction h2 {
	margin: 0;
	font-family: var(--font-sans);
	font-size: clamp(38px, 5vw, 76px);
	font-weight: 400;
	letter-spacing: -0.035em;
	line-height: 1.42;
}

.home-introduction h2 + p {
	max-width: 590px;
	margin: clamp(46px, 7vw, 84px) 0 0 auto;
	color: var(--ink-soft);
	font-size: clamp(14px, 1.15vw, 17px);
	letter-spacing: 0.055em;
	line-height: 2.25;
}

.text-link {
	display: flex;
	width: max-content;
	align-items: center;
	gap: 34px;
	margin: 40px 0 0 auto;
	padding: 0 0 9px;
	border-bottom: 1px solid var(--navy);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-decoration: none;
}

.text-link span {
	font-size: 16px;
	font-weight: 400;
	transition: transform 240ms var(--ease-out);
}

.text-link:hover span,
.text-link:focus-visible span {
	transform: translate(3px, -3px);
}

.section-code--light,
.section-code--light span {
	color: rgba(255, 255, 255, 0.68);
}

.section-code--light::before {
	background: rgba(255, 255, 255, 0.78);
}

.philosophy-feature {
	position: relative;
	min-height: 112svh;
	padding: clamp(100px, 10vw, 170px) var(--gutter);
	overflow: hidden;
	background: var(--navy);
	color: #FFFFFF;
}

.philosophy-feature::before {
	position: absolute;
	top: 0;
	right: 28%;
	bottom: 0;
	width: 1px;
	background: rgba(255, 255, 255, 0.08);
	content: "";
}

.philosophy-feature__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
}

.philosophy-feature__head .eyebrow {
	color: rgba(255, 255, 255, 0.46);
}

.philosophy-feature__body {
	display: grid;
	grid-template-columns: minmax(390px, 0.95fr) minmax(430px, 0.82fr);
	gap: clamp(50px, 10vw, 180px);
	align-items: center;
	margin-top: clamp(30px, 4vw, 70px);
}

.philosophy-feature__quote {
	position: relative;
	display: grid;
	width: min(43vw, 620px);
	aspect-ratio: 1;
	place-items: center;
}

.philosophy-feature__quote::before,
.philosophy-feature__quote::after {
	position: absolute;
	top: 50%;
	left: 50%;
	border: 1px solid rgba(255, 255, 255, 0.25);
	border-radius: 50%;
	content: "";
	transform: translate(-50%, -50%);
}

.philosophy-feature__quote::before {
	width: 96%;
	height: 44%;
	transform: translate(-50%, -50%) rotate(-8deg);
}

.philosophy-feature__quote::after {
	width: 71%;
	height: 32%;
	border-color: rgba(255, 255, 255, 0.12);
	transform: translate(-50%, -50%) rotate(11deg);
}

.philosophy-feature__quote p {
	position: relative;
	z-index: 2;
	margin: 0;
	font-family: var(--font-sans);
	font-size: clamp(26px, 3vw, 48px);
	font-weight: 400;
	letter-spacing: 0.06em;
	line-height: 1.7;
	text-align: center;
}

.quote-seed {
	position: absolute;
	z-index: 3;
	top: calc(50% - 3px);
	left: calc(50% - 3px);
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #F47F78;
}

.quote-line {
	position: absolute;
	background: rgba(255, 255, 255, 0.13);
}

.quote-line--one {
	top: 5%;
	bottom: 5%;
	left: 50%;
	width: 1px;
}

.quote-line--two {
	top: 50%;
	right: 0;
	left: 0;
	height: 1px;
}

.philosophy-feature__source {
	margin: 0 0 35px;
	color: rgba(255, 255, 255, 0.48);
	font-size: 9px;
	letter-spacing: 0.13em;
}

.philosophy-feature__copy h2 {
	margin: 0;
	font-family: var(--font-sans);
	font-size: clamp(27px, 2.6vw, 43px);
	font-weight: 400;
	letter-spacing: -0.018em;
	line-height: 1.78;
}

.philosophy-feature__copy h2 + p {
	max-width: 500px;
	margin: clamp(38px, 5vw, 68px) 0 0 auto;
	color: rgba(255, 255, 255, 0.68);
	font-size: 13px;
	letter-spacing: 0.06em;
	line-height: 2.25;
}

.text-link--light {
	border-color: rgba(255, 255, 255, 0.7);
	color: #FFFFFF;
}

.business-feature {
	padding: clamp(110px, 13vw, 210px) var(--gutter);
}

.business-feature__header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
}

.business-feature__count {
	margin: 0;
	color: var(--ink);
	font-size: 8px;
	letter-spacing: 0.18em;
}

.business-feature__grid {
	display: grid;
	grid-template-columns: minmax(420px, 1.08fr) minmax(430px, 0.92fr);
	gap: clamp(70px, 10vw, 170px);
	align-items: center;
	margin-top: clamp(20px, 5vw, 80px);
}

.business-feature__visual {
	position: relative;
	aspect-ratio: 1.08;
	overflow: hidden;
	background: #FFFFFF;
}

.business-feature__visual::before,
.business-feature__visual::after {
	position: absolute;
	background: rgba(var(--text-ink-rgb), 0.16);
	content: "";
}

.business-feature__visual::before {
	top: 0;
	bottom: 0;
	left: 50%;
	width: 1px;
}

.business-feature__visual::after {
	top: 50%;
	right: 0;
	left: 0;
	height: 1px;
}

.school-signal {
	position: absolute;
	z-index: 2;
	top: 0;
	bottom: 0;
	width: clamp(5px, 0.55vw, 8px);
}

.school-signal--one { left: 13%; background: #F47F78; }
.school-signal--two { left: 16%; background: #F3D760; }
.school-signal--three { left: 19%; background: #78D4CF; }
.school-signal--four { left: 22%; background: #72AEEB; }

.school-orbit {
	position: absolute;
	top: 50%;
	left: 57%;
	width: 63%;
	height: 38%;
	border: 1px solid var(--navy);
	border-radius: 50%;
	transform: translate(-50%, -50%) rotate(-18deg);
}

.school-orbit::after {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--navy);
	content: "";
}

.school-orbit span {
	position: absolute;
	padding: 3px 5px;
	background: #FFFFFF;
	font-size: 7px;
	font-weight: 600;
	letter-spacing: 0.17em;
}

.school-orbit span:nth-child(1) { top: 13%; left: 8%; }
.school-orbit span:nth-child(2) { top: 64%; left: 47%; }
.school-orbit span:nth-child(3) { top: 24%; right: 3%; }

.business-feature__copy h2 {
	margin: 0;
	font-family: var(--font-sans);
	font-size: clamp(40px, 4.5vw, 70px);
	font-weight: 400;
	letter-spacing: -0.04em;
}

.business-feature__kana {
	margin: 21px 0 0;
	color: var(--navy);
	font-size: 11px;
	letter-spacing: 0.18em;
}

.business-feature__kana + p {
	max-width: 550px;
	margin: clamp(45px, 6vw, 78px) 0 0;
	color: var(--ink-soft);
	font-size: 14px;
	letter-spacing: 0.05em;
	line-height: 2.25;
}

.business-feature__links {
	display: flex;
	flex-wrap: wrap;
	gap: 14px 40px;
	margin-top: 42px;
}

.business-feature__links .text-link {
	margin: 0;
}

.questions-feature {
	display: grid;
	grid-template-columns: minmax(360px, 0.72fr) minmax(560px, 1fr);
	gap: clamp(70px, 10vw, 170px);
	padding: clamp(110px, 13vw, 190px) var(--gutter);
	background: var(--navy);
	color: #FFFFFF;
}

.questions-feature__intro h2 {
	margin: 0;
	font-family: var(--font-sans);
	font-size: clamp(36px, 4vw, 62px);
	font-weight: 400;
	letter-spacing: -0.035em;
	line-height: 1.52;
}

.questions-feature__intro h2 + p {
	max-width: 460px;
	margin: 48px 0 0;
	color: rgba(255, 255, 255, 0.56);
	font-size: 12px;
	letter-spacing: 0.06em;
	line-height: 2.15;
}

.question-list {
	margin: 0;
	padding: 0;
	border-top: 1px solid rgba(255, 255, 255, 0.2);
	list-style: none;
}

.question-list li {
	position: relative;
	display: grid;
	grid-template-columns: 55px 1fr auto;
	gap: 25px;
	align-items: center;
	min-height: 145px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

.question-list li > span,
.question-list li > i {
	color: rgba(255, 255, 255, 0.43);
	font-size: 8px;
	font-style: normal;
	letter-spacing: 0.16em;
}

.question-list li p {
	margin: 0;
	font-family: var(--font-sans);
	font-size: clamp(17px, 1.6vw, 25px);
	letter-spacing: 0.035em;
	line-height: 1.8;
}

.company-feature {
	position: relative;
	display: grid;
	grid-template-columns: minmax(270px, 0.7fr) minmax(520px, 1.15fr) 180px;
	gap: clamp(45px, 7vw, 110px);
	align-items: start;
	padding: clamp(110px, 14vw, 210px) var(--gutter);
}

.company-feature__title h2 {
	margin: 0;
	font-family: var(--font-sans);
	font-size: clamp(42px, 5vw, 70px);
	font-weight: 400;
}

.company-facts {
	margin: 0;
	border-top: 1px solid var(--line);
}

.company-facts div {
	display: grid;
	grid-template-columns: 120px 1fr;
	gap: 25px;
	padding: 23px 0;
	border-bottom: 1px solid var(--line);
}

.company-facts dt {
	color: var(--ink);
	font-size: 10px;
	letter-spacing: 0.1em;
}

.company-facts dd {
	margin: 0;
	font-size: 13px;
	letter-spacing: 0.055em;
	line-height: 1.8;
}

.round-link {
	display: flex;
	width: 152px;
	height: 152px;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--navy);
	border-radius: 50%;
	font-size: 9px;
	font-weight: 600;
	letter-spacing: 0.15em;
	line-height: 1.55;
	text-decoration: none;
	transition: background 320ms ease, color 320ms ease, transform 320ms var(--ease-out);
}

.round-link i {
	margin-left: 13px;
	font-size: 17px;
	font-style: normal;
}

.round-link:hover,
.round-link:focus-visible {
	background: var(--navy);
	color: #FFFFFF;
	transform: rotate(-4deg);
}

.contact-feature {
	display: grid;
	grid-template-columns: minmax(180px, 0.38fr) 1fr;
	gap: clamp(45px, 8vw, 140px);
	padding: clamp(100px, 12vw, 180px) var(--gutter);
	background: #FFFFFF;
}

.contact-feature h2 {
	margin: 0;
	font-family: var(--font-sans);
	font-size: clamp(38px, 5.1vw, 75px);
	font-weight: 400;
	letter-spacing: -0.04em;
	line-height: 1.48;
}

.contact-feature h2 + a {
	display: inline-flex;
	align-items: center;
	gap: 24px;
	margin-top: 58px;
	font-size: clamp(18px, 2vw, 28px);
	font-weight: 600;
	letter-spacing: 0.12em;
	text-decoration: none;
}

.contact-feature h2 + a span {
	font-size: 21px;
	font-weight: 400;
}

/* Shared page language */
.page-main {
	padding-top: var(--header-height);
}

.page-hero {
	position: relative;
	display: grid;
	min-height: calc(92svh - var(--header-height));
	grid-template-columns: minmax(160px, 0.45fr) minmax(430px, 1fr);
	grid-template-rows: auto 1fr auto;
	column-gap: clamp(50px, 8vw, 130px);
	align-items: start;
	padding: clamp(75px, 10vw, 140px) var(--gutter) 70px;
	overflow: hidden;
	border-bottom: 1px solid var(--line-soft);
}

.page-hero > .section-code {
	grid-row: 1;
	grid-column: 1;
}

.page-hero__title {
	position: relative;
	z-index: 2;
	grid-row: 1 / 3;
	grid-column: 2;
}

.page-hero__title > p {
	margin: 1px 0 clamp(40px, 6vw, 80px);
	color: var(--ink);
	font-size: 8px;
	letter-spacing: 0.2em;
}

.page-hero h1 {
	margin: 0;
	font-family: var(--font-sans);
	font-size: clamp(60px, 8.1vw, 124px);
	font-weight: 400;
	letter-spacing: -0.06em;
	line-height: 1.16;
}

.page-hero__lead {
	position: relative;
	z-index: 2;
	grid-row: 3;
	grid-column: 2;
	max-width: 620px;
	margin: 50px 0 0 auto;
	font-family: var(--font-sans);
	font-size: clamp(18px, 2.1vw, 31px);
	letter-spacing: 0.025em;
	line-height: 1.75;
}

.page-hero__figure {
	position: absolute;
	right: -8vw;
	bottom: -14vw;
	width: min(57vw, 860px);
	aspect-ratio: 1;
}

.page-hero__figure::before,
.page-hero__figure::after {
	position: absolute;
	top: 50%;
	left: 50%;
	border: 1px solid var(--line);
	border-radius: 50%;
	content: "";
	transform: translate(-50%, -50%);
}

.page-hero__figure::before { width: 95%; height: 43%; transform: translate(-50%, -50%) rotate(-11deg); }
.page-hero__figure::after { width: 65%; height: 29%; transform: translate(-50%, -50%) rotate(13deg); }
.page-hero__figure i { position: absolute; background: var(--line-soft); }
.page-hero__figure i:first-child { top: 0; bottom: 0; left: 50%; width: 1px; }
.page-hero__figure i:nth-child(2) { top: 50%; right: 0; left: 0; height: 1px; }
.page-hero__figure span { position: absolute; top: 50%; left: 50%; color: rgba(var(--text-ink-rgb), .22); font-size: 11px; }

.page-opening {
	display: grid;
	grid-template-columns: minmax(180px, 0.38fr) minmax(450px, 1fr);
	column-gap: clamp(50px, 8vw, 140px);
	row-gap: 60px;
	padding: clamp(110px, 14vw, 210px) var(--gutter);
}

.page-opening__label {
	margin: 10px 0 0;
	color: var(--ink);
	font-size: 8px;
	font-weight: 600;
	letter-spacing: 0.2em;
}

.page-opening h2 {
	margin: 0;
	font-family: var(--font-sans);
	font-size: clamp(40px, 5.3vw, 78px);
	font-weight: 400;
	letter-spacing: -0.04em;
	line-height: 1.44;
}

.page-opening__body {
	display: grid;
	grid-column: 2;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(35px, 6vw, 90px);
	max-width: 900px;
	margin-left: auto;
}

.page-opening__body p,
.about-position > div > p,
.business-scope > p {
	margin: 0;
	color: var(--ink-soft);
	font-size: 14px;
	letter-spacing: 0.055em;
	line-height: 2.25;
}

.split-heading {
	display: grid;
	grid-template-columns: minmax(180px, 0.38fr) minmax(450px, 1fr);
	gap: clamp(50px, 8vw, 140px);
}

.split-heading > p {
	margin: 8px 0 0;
	color: var(--ink);
	font-size: 8px;
	letter-spacing: 0.18em;
}

.split-heading h2 {
	margin: 0;
	font-family: var(--font-sans);
	font-size: clamp(30px, 3.5vw, 52px);
	font-weight: 400;
	letter-spacing: -0.025em;
	line-height: 1.55;
}

.stance-section {
	padding: clamp(100px, 12vw, 180px) var(--gutter);
	background: #FFFFFF;
}

.stance-list {
	margin: 90px 0 0 calc(38% + 20px);
	padding: 0;
	border-top: 1px solid var(--line);
	list-style: none;
}

.stance-list li {
	display: grid;
	grid-template-columns: 55px 1fr;
	gap: 25px;
	padding: 35px 0;
	border-bottom: 1px solid var(--line);
}

.stance-list li > span {
	color: var(--ink);
	font-size: 9px;
}

.stance-list h3,
.stance-list p {
	margin: 0;
}

.stance-list h3 {
	font-family: var(--font-sans);
	font-size: 24px;
	font-weight: 400;
	letter-spacing: 0.03em;
}

.stance-list p {
	max-width: 530px;
	margin-top: 17px;
	color: var(--ink-soft);
	font-size: 12px;
	letter-spacing: 0.06em;
	line-height: 2;
}

.about-position {
	display: grid;
	grid-template-columns: minmax(430px, 1fr) minmax(400px, 0.8fr);
	gap: clamp(60px, 10vw, 170px);
	align-items: center;
	padding: clamp(110px, 14vw, 210px) var(--gutter);
}

.about-position__diagram {
	position: relative;
	aspect-ratio: 1.18;
}

.about-position__diagram::before,
.about-position__diagram::after {
	position: absolute;
	background: var(--line);
	content: "";
}

.about-position__diagram::before { top: 50%; right: 0; left: 0; height: 1px; }
.about-position__diagram::after { top: 0; bottom: 0; left: 50%; width: 1px; }
.about-position__ring { position: absolute; top: 50%; left: 50%; width: 87%; height: 46%; border: 1px solid var(--navy); border-radius: 50%; transform: translate(-50%,-50%) rotate(-11deg); }
.about-position__diagram i { position: absolute; z-index: 2; width: 7px; height: 7px; border-radius: 50%; background: var(--navy); }
.about-position__diagram i:nth-of-type(1) { top: 34%; left: 23%; background: var(--signal); }
.about-position__diagram i:nth-of-type(2) { top: 50%; left: 50%; }
.about-position__diagram i:nth-of-type(3) { top: 63%; right: 13%; background: var(--paper); box-shadow: 0 0 0 1px var(--navy); }
.about-position__diagram small { position: absolute; padding: 3px 5px; background: var(--paper); font-size: 7px; letter-spacing: .14em; }
.about-position__diagram small:nth-of-type(1) { top: 29%; left: 14%; }
.about-position__diagram small:nth-of-type(2) { top: 52%; left: 51%; }
.about-position__diagram small:nth-of-type(3) { top: 66%; right: 5%; }

.about-position h2,
.business-scope h2,
.company-coordinate h2 {
	margin: 0 0 45px;
	font-family: var(--font-sans);
	font-size: clamp(30px, 3.2vw, 49px);
	font-weight: 400;
	letter-spacing: -0.025em;
	line-height: 1.65;
}

.philosophy-statement {
	position: relative;
	min-height: 105svh;
	padding: clamp(110px, 14vw, 210px) var(--gutter);
	overflow: hidden;
	background: var(--navy);
	color: #FFFFFF;
}

.philosophy-statement__source {
	margin: 0;
	color: rgba(255, 255, 255,.48);
	font-size: 9px;
	letter-spacing: .14em;
}

.philosophy-statement blockquote {
	position: relative;
	z-index: 2;
	margin: clamp(90px, 10vw, 150px) 0 0 7vw;
}

.philosophy-statement blockquote p {
	margin: 0;
	font-family: var(--font-sans);
	font-size: clamp(42px, 6.1vw, 93px);
	font-weight: 400;
	letter-spacing: .01em;
	line-height: 1.58;
}

.philosophy-statement__mark { position: absolute; right: -8vw; bottom: -16vw; width: 64vw; max-width: 970px; aspect-ratio: 1; }
.philosophy-statement__mark::before,
.philosophy-statement__mark::after { position: absolute; top: 50%; left: 50%; border: 1px solid rgba(255, 255, 255,.2); border-radius: 50%; content:""; transform:translate(-50%,-50%) rotate(-10deg); }
.philosophy-statement__mark::before { width: 94%; height: 42%; }
.philosophy-statement__mark::after { width: 67%; height: 29%; transform:translate(-50%,-50%) rotate(12deg); }
.philosophy-statement__mark i { position:absolute; background:rgba(255, 255, 255,.09); }
.philosophy-statement__mark i:first-child { top:0; bottom:0; left:50%; width:1px; }
.philosophy-statement__mark i:nth-child(2) { top:50%; right:0; left:0; height:1px; }
.philosophy-statement__mark span { position:absolute; top:50%; left:50%; font-family:var(--font-sans); font-size:15px; }
.philosophy-statement__mark small { position:absolute; top:33%; left:21%; color:rgba(255, 255, 255,.5); font-size:9px; letter-spacing:.16em; }

.philosophy-copy {
	display:grid;
	grid-template-columns:minmax(180px,.38fr) minmax(500px,1fr);
	gap:clamp(50px,8vw,140px);
	padding:clamp(110px,14vw,210px) var(--gutter);
}

.philosophy-copy > div { max-width:850px; }
.philosophy-copy h2 { margin:0 0 65px; font-family:var(--font-sans); font-size:clamp(40px,5vw,74px); font-weight:400; letter-spacing:-.04em; }
.philosophy-copy > div p { max-width:650px; margin:0 0 30px auto; color:var(--ink-soft); font-size:14px; letter-spacing:.055em; line-height:2.3; }

.language-flow { padding:clamp(95px,11vw,165px) var(--gutter); background:#FFFFFF; }
.language-flow header { display:flex; align-items:flex-end; justify-content:space-between; gap:30px; }
.language-flow header p { margin:0; color:var(--ink); font-size:8px; letter-spacing:.18em; }
.language-flow header h2 { margin:0; font-family:var(--font-sans); font-size:clamp(35px,4vw,60px); font-weight:400; }
.language-flow ol { display:grid; grid-template-columns:repeat(5,1fr); margin:85px 0 0; padding:0; border-top:1px solid var(--navy); list-style:none; }
.language-flow li { position:relative; display:flex; min-height:230px; flex-direction:column; justify-content:space-between; padding:19px 18px 20px 0; border-right:1px solid var(--line); }
.language-flow li::before { position:absolute; top:-4px; left:0; width:7px; height:7px; border-radius:50%; background:var(--navy); content:""; }
.language-flow li:first-child::before { background:var(--signal); }
.language-flow li span,.language-flow li small { color:var(--ink); font-size:8px; letter-spacing:.15em; }
.language-flow li strong { font-family:var(--font-sans); font-size:28px; font-weight:400; }

.philosophy-principles { display:grid; grid-template-columns:repeat(3,1fr); padding:clamp(100px,12vw,180px) var(--gutter); }
.philosophy-principles article { min-height:290px; padding:0 clamp(20px,3vw,50px); border-right:1px solid var(--line); }
.philosophy-principles article:first-child { padding-left:0; }
.philosophy-principles article:last-child { border:0; }
.philosophy-principles span { color:var(--ink); font-size:9px; }
.philosophy-principles h3 { margin:85px 0 26px; font-family:var(--font-sans); font-size:27px; font-weight:400; }
.philosophy-principles p { max-width:320px; margin:0; color:var(--ink-soft); font-size:12px; letter-spacing:.05em; line-height:2.05; }

.business-school { display:grid; grid-template-columns:minmax(430px,1fr) minmax(430px,.9fr); gap:clamp(65px,10vw,160px); align-items:center; padding:clamp(110px,14vw,210px) var(--gutter); }
.business-school__signal { position:relative; aspect-ratio:1.08; overflow:hidden; background:#FFFFFF; }
.business-school__signal::before,.business-school__signal::after { position:absolute; background:var(--line); content:""; }
.business-school__signal::before { top:0; bottom:0; left:50%; width:1px; }
.business-school__signal::after { top:50%; right:0; left:0; height:1px; }
.business-school__signal i { position:absolute; top:0; bottom:0; width:1.55%; }
.business-school__signal i:nth-child(1){left:12%;background:#F47F78}.business-school__signal i:nth-child(2){left:15.5%;background:#F3D760}.business-school__signal i:nth-child(3){left:19%;background:#78D4CF}.business-school__signal i:nth-child(4){left:22.5%;background:#72AEEB}
.business-school__signal span { position:absolute; top:50%; left:50%; display:grid; width:37%; aspect-ratio:1; place-items:center; border:1px solid var(--navy); border-radius:50%; font-size:clamp(30px,4vw,62px); font-weight:300; transform:translate(-50%,-50%); }
.business-school__copy h2 { margin:0; font-family:var(--font-sans); font-size:clamp(44px,5.1vw,76px); font-weight:400; letter-spacing:-.04em; }
.business-school__tagline { margin:22px 0 60px; color:var(--navy); font-size:11px; letter-spacing:.18em; }
.business-school__tagline + p { max-width:520px; margin:0; color:var(--ink-soft); font-size:14px; letter-spacing:.055em; line-height:2.25; }
.external-button { display:flex; width:min(100%,420px); align-items:center; justify-content:space-between; margin-top:45px; padding:20px 0; border-top:1px solid var(--navy); border-bottom:1px solid var(--navy); font-size:11px; font-weight:600; letter-spacing:.13em; text-decoration:none; }
.external-button i { font-size:18px; font-style:normal; transition:transform .25s var(--ease-out); }
.external-button:hover i { transform:translate(4px,-4px); }

.school-method { padding:clamp(105px,13vw,190px) var(--gutter); background:var(--navy); color:#FFFFFF; }
.school-method .split-heading > p { color:rgba(255, 255, 255,.45); }
.school-method ol { display:grid; grid-template-columns:repeat(3,1fr); margin:90px 0 0 38%; padding:0; border-top:1px solid rgba(255, 255, 255,.24); list-style:none; }
.school-method li { min-height:300px; padding:22px clamp(20px,3vw,44px) 20px 0; border-right:1px solid rgba(255, 255, 255,.15); }
.school-method li + li { padding-left:clamp(20px,3vw,44px); }
.school-method li span { color:rgba(255, 255, 255,.44); font-size:8px; }
.school-method li h3 { margin:85px 0 25px; font-family:var(--font-sans); font-size:29px; font-weight:400; }
.school-method li p { margin:0; color:rgba(255, 255, 255,.6); font-size:12px; letter-spacing:.05em; line-height:2; }

.business-scope { display:grid; grid-template-columns:minmax(420px,1fr) minmax(350px,.65fr); gap:clamp(70px,12vw,190px); align-items:end; padding:clamp(110px,14vw,210px) var(--gutter); }

.company-profile { display:grid; grid-template-columns:minmax(220px,.48fr) minmax(550px,1fr); gap:clamp(55px,9vw,150px); padding:clamp(110px,14vw,210px) var(--gutter); }
.company-profile header h2 { margin:35px 0 0; font-family:var(--font-sans); font-size:clamp(42px,5vw,72px); font-weight:400; }
.company-profile dl { margin:0; border-top:1px solid var(--line); }
.company-profile dl div { display:grid; grid-template-columns:160px 1fr; gap:30px; padding:28px 0; border-bottom:1px solid var(--line); }
.company-profile dt { color:var(--ink); font-size:10px; letter-spacing:.1em; }
.company-profile dd { margin:0; font-size:14px; letter-spacing:.055em; line-height:1.9; }
.company-profile dd small { color:var(--ink); font-size:8px; letter-spacing:.17em; }

.company-coordinate { display:grid; grid-template-columns:minmax(440px,1fr) minmax(400px,.8fr); gap:clamp(65px,10vw,160px); align-items:center; padding:clamp(110px,14vw,210px) var(--gutter); background:#FFFFFF; }
.company-coordinate__map { position:relative; aspect-ratio:1.18; }
.company-coordinate__map::before,.company-coordinate__map::after { position:absolute; top:50%; left:50%; border:1px solid var(--line); border-radius:50%; content:""; transform:translate(-50%,-50%); }
.company-coordinate__map::before { width:90%; height:45%; transform:translate(-50%,-50%) rotate(-12deg); }
.company-coordinate__map::after { width:63%; height:30%; transform:translate(-50%,-50%) rotate(11deg); }
.company-coordinate__map i { position:absolute; background:var(--line); }
.company-coordinate__map i:first-child { top:0;bottom:0;left:50%;width:1px}.company-coordinate__map i:nth-child(2){top:50%;right:0;left:0;height:1px}
.company-coordinate__map span { position:absolute; z-index:2; top:50%; left:50%; width:7px; height:7px; border-radius:50%; background:var(--signal); }
.company-coordinate__map small { position:absolute; top:53%; left:52%; padding:4px 7px; background:#FFFFFF; font-size:8px; letter-spacing:.14em; }
.company-coordinate > div:last-child > p:last-child { max-width:510px; margin:0; color:var(--ink-soft); font-size:14px; letter-spacing:.055em; line-height:2.25; }

.contact-opening { padding:clamp(110px,14vw,210px) var(--gutter); }
.contact-opening > h2 { max-width:1100px; margin:55px 0 0; font-family:var(--font-sans); font-size:clamp(43px,6.1vw,91px); font-weight:400; letter-spacing:-.045em; line-height:1.45; }
.contact-opening > h2 + p { max-width:560px; margin:70px 0 0 auto; color:var(--ink-soft); font-size:14px; letter-spacing:.055em; line-height:2.2; }
.contact-mail { display:grid; grid-template-columns:140px 1fr auto; gap:30px; align-items:center; margin-top:80px; padding:34px 0; border-top:1px solid var(--navy); border-bottom:1px solid var(--navy); text-decoration:none; }
.contact-mail span { color:var(--ink); font-size:9px; letter-spacing:.17em; }
.contact-mail strong { font-size:clamp(24px,4vw,57px); font-weight:400; letter-spacing:-.03em; }
.contact-mail i { font-size:28px; font-style:normal; transition:transform .25s var(--ease-out); }
.contact-mail:hover i { transform:translate(5px,-5px); }

.contact-notes { display:grid; grid-template-columns:minmax(180px,.38fr) minmax(500px,1fr); gap:clamp(50px,8vw,140px); padding:clamp(100px,12vw,180px) var(--gutter); background:#FFFFFF; }
.contact-notes > p { margin:6px 0 0; color:var(--ink); font-size:8px; letter-spacing:.18em; }
.contact-notes ul { margin:0; padding:0; border-top:1px solid var(--line); list-style:none; }
.contact-notes li { display:grid; grid-template-columns:45px 1fr; gap:20px; padding:24px 0; border-bottom:1px solid var(--line); color:var(--ink-soft); font-size:12px; letter-spacing:.05em; line-height:1.8; }
.contact-notes li span { color:var(--ink); font-size:8px; }
.contact-notes .text-link { grid-column:2; margin:15px 0 0; }

.next-page {
	display:grid;
	grid-template-columns:minmax(140px,.35fr) 1fr auto;
	gap:40px;
	align-items:center;
	min-height:230px;
	padding:45px var(--gutter);
	border-top:1px solid var(--line-soft);
	background:#FFFFFF;
	text-decoration:none;
}
.next-page span { color:var(--ink); font-size:8px; letter-spacing:.18em; }
.next-page strong { font-size:clamp(38px,5vw,73px); font-weight:500; letter-spacing:.07em; }
.next-page i { font-size:40px; font-style:normal; transition:transform .3s var(--ease-out); }
.next-page:hover i { transform:translateX(10px); }

.fallback-content { min-height:75svh; padding:calc(var(--header-height) + 100px) var(--gutter) 100px; }
.fallback-content h1 { font-family:var(--font-sans); font-size:clamp(40px,6vw,80px); font-weight:400; }

.reveal {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 900ms ease, transform 1100ms var(--ease-out);
}

.reveal.is-visible {
	opacity: 1;
	transform: none;
}

.global-footer {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 40px;
	align-items: end;
	padding: 70px var(--gutter) 34px;
	border-top: 1px solid var(--line-soft);
}

.global-footer__lead {
	display: flex;
	align-items: center;
	gap: 18px;
}

.global-footer__lead p,
.global-footer__meta p {
	margin: 0;
}

.global-footer__lead p {
	font-family: var(--font-sans);
	font-size: 15px;
	letter-spacing: 0.08em;
}

.global-footer__meta {
	display: flex;
	gap: 28px;
	color: var(--ink-soft);
	font-size: 8px;
	letter-spacing: 0.12em;
}

.global-footer__meta a {
	color: inherit;
	text-underline-offset: 3px;
}

@media (max-width: 900px) {
	:root {
		--header-height: 76px;
		--gutter: clamp(22px, 6vw, 48px);
	}

	.menu-toggle {
		position: relative;
		z-index: 4;
		display: flex;
		align-items: center;
		gap: 12px;
		padding: 10px 0 10px 10px;
		border: 0;
		background: transparent;
		color: var(--ink);
		cursor: pointer;
	}

	.menu-toggle__label {
		font-size: 8px;
		font-weight: 600;
		letter-spacing: 0.14em;
	}

	.menu-toggle__lines {
		position: relative;
		display: block;
		width: 25px;
		height: 12px;
	}

	.menu-toggle__lines i {
		position: absolute;
		right: 0;
		left: 0;
		height: 1px;
		background: currentColor;
		transition: transform 320ms var(--ease-out), top 320ms var(--ease-out);
	}

	.menu-toggle__lines i:first-child { top: 3px; }
	.menu-toggle__lines i:last-child { top: 9px; }
	.menu-toggle[aria-expanded="true"] .menu-toggle__lines i:first-child { top: 6px; transform: rotate(32deg); }
	.menu-toggle[aria-expanded="true"] .menu-toggle__lines i:last-child { top: 6px; transform: rotate(-32deg); }

	.global-nav {
		position: fixed;
		z-index: 2;
		inset: 0;
		display: flex;
		visibility: hidden;
		flex-direction: column;
		justify-content: center;
		padding: 108px var(--gutter) 50px;
		background: var(--navy);
		color: #FFFFFF;
		opacity: 0;
		transition: opacity 360ms ease, visibility 360ms;
	}

	.global-nav.is-open {
		visibility: visible;
		opacity: 1;
	}

	.global-nav__index {
		display: block;
		margin: 0 0 44px;
		color: rgba(255, 255, 255, 0.52);
		font-size: 8px;
		letter-spacing: 0.2em;
	}

	.global-nav ul {
		display: block;
	}

	.global-nav li {
		border-top: 1px solid rgba(255, 255, 255, 0.15);
	}

	.global-nav li:last-child {
		border-bottom: 1px solid rgba(255, 255, 255, 0.15);
	}

	.global-nav a {
		gap: 15px;
		padding: 18px 0;
		font-size: clamp(21px, 7vw, 34px);
		font-weight: 400;
		letter-spacing: 0.04em;
	}

	.global-nav a span {
		color: rgba(255, 255, 255, 0.5);
		font-size: 8px;
	}

	.global-nav a::after { display: none; }

	.menu-open .site-brand { color: #FFFFFF; }
	.menu-open .site-brand__mark { border-color: #FFFFFF; color: #FFFFFF; }
	.menu-open .menu-toggle { color: #FFFFFF; }

	.home-hero {
		grid-template-columns: 1fr;
		align-content: center;
		padding-top: calc(var(--header-height) + 34px);
		padding-bottom: 78px;
	}

	.home-hero__copy {
		align-self: auto;
		padding-top: 0;
	}

	.home-hero h1 {
		font-size: clamp(43px, 12vw, 65px);
		line-height: 1.36;
	}

	.home-hero__lead {
		margin: 32px 0 0 18vw;
		font-size: 12px;
		line-height: 2.05;
	}

	.thought-field {
		position: absolute;
		right: -21vw;
		bottom: 4vh;
		width: min(108vw, 620px);
		opacity: 0.8;
		transform: rotate(-4deg);
	}

	.home-hero__copy { text-shadow: 0 0 24px var(--paper), 0 0 24px var(--paper); }

	.scroll-cue {
		right: auto;
		bottom: 26px;
		left: var(--gutter);
	}

	.home-introduction {
		min-height: auto;
		grid-template-columns: 1fr;
		gap: 38px;
		padding-top: 100px;
		padding-bottom: 110px;
	}

	.home-introduction h2 + p {
		margin-top: 48px;
		font-size: 14px;
		line-height: 2.15;
	}

	.global-footer {
		grid-template-columns: 1fr;
		gap: 46px;
	}

	.global-footer__meta {
		flex-wrap: wrap;
		gap: 10px 24px;
	}
}

@media (max-width: 520px) {
	.site-brand__mark {
		width: 28px;
		height: 28px;
	}

	.site-brand__name {
		font-size: 10px;
	}

	.section-code {
		margin-bottom: 36px;
	}

	.home-hero {
		min-height: 100svh;
		align-content: start;
		padding-top: 22svh;
	}

	.home-hero h1 {
		font-size: clamp(42px, 12.2vw, 54px);
	}

	.home-hero__lead {
		margin-top: 34px;
		margin-left: 9vw;
		font-size: 11px;
	}

	.thought-field {
		right: -42vw;
		bottom: 7vh;
		width: 130vw;
	}

	.thought-field__label,
	.thought-field__number {
		font-size: 7px;
	}

	.home-introduction h2 {
		font-size: clamp(36px, 10.2vw, 50px);
	}

	.global-footer {
		padding-top: 52px;
	}
}

@media (max-width: 900px) {
	.philosophy-feature,
	.questions-feature {
		min-height: auto;
	}

	.philosophy-feature__head {
		display: block;
	}

	.philosophy-feature__head .eyebrow {
		display: none;
	}

	.philosophy-feature__body,
	.business-feature__grid,
	.questions-feature,
	.company-feature,
	.contact-feature,
	.about-position,
	.business-school,
	.business-scope,
	.company-coordinate {
		grid-template-columns: 1fr;
	}

	.philosophy-feature__body,
	.business-feature__grid,
	.questions-feature,
	.company-feature,
	.contact-feature,
	.about-position,
	.business-school,
	.business-scope,
	.company-coordinate {
		gap: 62px;
	}

	.philosophy-feature__quote {
		width: min(100%, 580px);
		justify-self: center;
	}

	.philosophy-feature__copy h2 + p {
		margin-left: 0;
	}

	.business-feature__visual,
	.business-school__signal {
		width: min(100%, 620px);
	}

	.questions-feature__intro h2 + p {
		margin-top: 35px;
	}

	.question-list li {
		min-height: 122px;
	}

	.company-feature {
		grid-template-columns: 1fr auto;
	}

	.company-feature__title {
		grid-column: 1 / -1;
	}

	.company-facts {
		grid-column: 1;
	}

	.round-link {
		grid-column: 2;
		align-self: end;
	}

	.contact-feature > .section-code {
		margin-bottom: 0;
	}

	.page-hero {
		min-height: 74svh;
		grid-template-columns: 1fr;
		grid-template-rows: auto auto 1fr;
		padding-top: 72px;
	}

	.page-hero > .section-code,
	.page-hero__title,
	.page-hero__lead {
		grid-column: 1;
	}

	.page-hero > .section-code { grid-row: 1; }
	.page-hero__title { grid-row: 2; }
	.page-hero__lead { grid-row: 3; align-self: end; }
	.page-hero__title > p { margin-bottom: 38px; }
	.page-hero h1 { font-size: clamp(54px, 12vw, 86px); }
	.page-hero__figure { right: -30vw; bottom: -20vw; width: 94vw; }

	.page-opening,
	.split-heading,
	.philosophy-copy,
	.company-profile,
	.contact-notes {
		grid-template-columns: 1fr;
	}

	.page-opening__body,
	.contact-notes .text-link {
		grid-column: 1;
	}

	.stance-list {
		margin-top: 70px;
		margin-left: 0;
	}

	.about-position__diagram,
	.company-coordinate__map {
		width: min(100%, 620px);
	}

	.philosophy-statement {
		min-height: 85svh;
	}

	.philosophy-statement blockquote {
		margin-left: 0;
	}

	.philosophy-statement__mark {
		right: -35vw;
		bottom: -16vw;
		width: 105vw;
	}

	.philosophy-copy {
		gap: 55px;
	}

	.language-flow ol {
		grid-template-columns: repeat(5, minmax(130px, 1fr));
		overflow-x: auto;
	}

	.philosophy-principles {
		grid-template-columns: 1fr;
	}

	.philosophy-principles article {
		min-height: auto;
		padding: 42px 0;
		border-right: 0;
		border-bottom: 1px solid var(--line);
	}

	.philosophy-principles h3 {
		margin-top: 45px;
	}

	.school-method ol {
		grid-template-columns: 1fr;
		margin-left: 0;
	}

	.school-method li,
	.school-method li + li {
		min-height: auto;
		padding: 30px 0 40px;
		border-right: 0;
		border-bottom: 1px solid rgba(255, 255, 255,.15);
	}

	.school-method li h3 {
		margin-top: 40px;
	}

	.company-profile {
		gap: 65px;
	}

	.company-profile dl div {
		grid-template-columns: 130px 1fr;
	}

	.contact-mail {
		grid-template-columns: 90px 1fr auto;
	}

	.next-page {
		min-height: 190px;
		grid-template-columns: 100px 1fr auto;
	}
}

@media (max-width: 520px) {
	.philosophy-feature,
	.business-feature,
	.questions-feature,
	.company-feature,
	.contact-feature,
	.page-opening,
	.stance-section,
	.about-position,
	.philosophy-statement,
	.philosophy-copy,
	.language-flow,
	.philosophy-principles,
	.business-school,
	.school-method,
	.business-scope,
	.company-profile,
	.company-coordinate,
	.contact-opening,
	.contact-notes {
		padding-top: 95px;
		padding-bottom: 100px;
	}

	.philosophy-feature__body,
	.business-feature__grid,
	.questions-feature,
	.company-feature,
	.contact-feature,
	.about-position,
	.business-school,
	.business-scope,
	.company-coordinate {
		gap: 48px;
	}

	.philosophy-feature__quote p {
		font-size: clamp(23px, 7.2vw, 31px);
	}

	.philosophy-feature__copy h2,
	.questions-feature__intro h2 {
		font-size: 31px;
	}

	.business-feature__header {
		display: block;
	}

	.business-feature__count {
		margin-top: -15px;
	}

	.business-feature__copy h2 {
		font-size: 43px;
	}

	.question-list li {
		grid-template-columns: 42px 1fr;
		gap: 15px;
		min-height: 112px;
	}

	.question-list li > i {
		display: none;
	}

	.company-feature {
		grid-template-columns: 1fr;
	}

	.company-feature__title,
	.company-facts,
	.round-link {
		grid-column: 1;
	}

	.company-facts div {
		grid-template-columns: 86px 1fr;
		gap: 15px;
	}

	.round-link {
		width: 130px;
		height: 130px;
		justify-self: end;
	}

	.contact-feature h2 {
		font-size: 37px;
	}

	.page-hero {
		min-height: 70svh;
		padding-top: 55px;
		padding-bottom: 45px;
	}

	.page-hero h1 {
		font-size: clamp(48px, 14vw, 62px);
		letter-spacing: -0.07em;
	}

	.page-hero__lead {
		font-size: 18px;
	}

	.page-opening {
		gap: 42px;
	}

	.page-opening h2 {
		font-size: 39px;
	}

	.page-opening__body {
		grid-template-columns: 1fr;
		gap: 26px;
	}

	.stance-list h3 {
		font-size: 21px;
	}

	.about-position h2,
	.business-scope h2,
	.company-coordinate h2 {
		font-size: 31px;
	}

	.philosophy-statement {
		min-height: 78svh;
	}

	.philosophy-statement blockquote {
		margin-top: 70px;
	}

	.philosophy-statement blockquote p {
		font-size: 36px;
	}

	.philosophy-copy h2 {
		font-size: 39px;
	}

	.language-flow header {
		align-items: flex-start;
		flex-direction: column;
	}

	.language-flow ol {
		grid-template-columns: 1fr;
		margin-top: 55px;
		overflow-x: visible;
	}

	.language-flow li {
		display: grid;
		min-height: 142px;
		grid-template-columns: 38px 1fr auto;
		align-items: center;
		padding: 22px 0;
		border-right: 0;
		border-bottom: 1px solid var(--line);
	}

	.language-flow li::before {
		top: -4px;
	}

	.language-flow li strong {
		font-size: 26px;
	}

	.business-school__copy h2 {
		font-size: 43px;
	}

	.company-profile dl div {
		grid-template-columns: 88px 1fr;
		gap: 16px;
	}

	.contact-opening > h2 {
		font-size: 39px;
	}

	.contact-opening > h2 + p {
		margin-top: 50px;
	}

	.contact-mail {
		grid-template-columns: 1fr auto;
		gap: 15px;
		margin-top: 55px;
	}

	.contact-mail span {
		grid-column: 1 / -1;
	}

	.contact-mail strong {
		font-size: clamp(19px, 5.5vw, 25px);
	}

	.next-page {
		grid-template-columns: 1fr auto;
		gap: 20px;
		min-height: 170px;
	}

	.next-page span {
		grid-column: 1 / -1;
	}

	.next-page strong {
		font-size: 36px;
	}
}

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