:root {
  color-scheme: light;
  --paper: #f6f5f0;
  --ink: #192925;
  --muted: #5b6a64;
  --line: #d4ddd5;
  --accent: #b74328;
  --accent-bright: #d95b3c;
  --dark: #1a302b;
  --soft: #e9eee8;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  min-width: 320px;
  min-height: 100vh;
  margin: 0;
  display: flex;
  flex-direction: column;
  background: var(--paper);
  color: var(--ink);
  font-family: "Segoe UI", "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
}
main { flex: 1; }
a { color: inherit; text-decoration: none; }
a:focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }
p, h1, h2, h3 { margin: 0; }
button, a { -webkit-tap-highlight-color: transparent; }
.shell { width: min(100% - 64px, 1200px); margin-inline: auto; }
.skip-link {
  position: absolute;
  z-index: 20;
  left: 24px;
  top: -100px;
  padding: 12px 18px;
  background: var(--ink);
  color: #fff;
}
.skip-link:focus { top: 12px; }

/* Header */
.site-header {
  display: flex;
  align-items: center;
  gap: 32px;
  min-height: 96px;
  border-bottom: 1px solid var(--line);
}
.brand { display: inline-flex; align-items: baseline; gap: 13px; white-space: nowrap; }
.brand-mark { font-size: 27px; line-height: 1; font-weight: 800; letter-spacing: -.09em; }
.brand-mark span { color: var(--accent-bright); }
.brand-name { font-size: 13px; font-weight: 700; letter-spacing: .02em; }
.site-nav { display: flex; align-items: center; gap: 32px; margin-left: auto; }
.site-nav a { font-size: 13px; font-weight: 650; color: var(--muted); transition: color .2s ease; }
.site-nav a:hover { color: var(--accent); }
.language-switch {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 4px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  white-space: nowrap;
}
.language-switch a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 48px;
  min-height: 36px;
  padding: 8px 12px;
  border-radius: 999px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  transition: background .2s ease, color .2s ease;
}
.language-switch a:hover { color: var(--ink); }
.language-switch a[aria-current="page"] { background: var(--ink); color: #fff; }
.language-switch a[aria-current="page"]:hover { color: #fff; }

/* Home */
.hero {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
  align-items: center;
  gap: clamp(48px, 7vw, 106px);
  padding-block: clamp(88px, 10vw, 148px);
}
.eyebrow, .section-number, .card-label, .focus-label, .hero-card-top, .hero-card-bottom {
  font-size: 11px;
  font-weight: 750;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.eyebrow { display: flex; align-items: center; gap: 12px; color: var(--muted); }
.eyebrow::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--accent-bright); }
.hero h1 {
  margin-top: 26px;
  font-size: clamp(80px, 10vw, 142px);
  line-height: .86;
  letter-spacing: -.088em;
  font-weight: 750;
}
.hero h1 span { color: var(--accent-bright); }
.hero-lede {
  max-width: 540px;
  margin-top: 38px;
  font-size: clamp(19px, 2.1vw, 25px);
  line-height: 1.55;
  letter-spacing: -.025em;
}
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 24px; margin-top: 38px; }
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  min-height: 55px;
  padding: 15px 22px;
  border: 1px solid transparent;
  border-radius: 5px;
  background: var(--accent);
  color: #fff;
  font-size: 14px;
  font-weight: 750;
  transition: transform .2s ease, background .2s ease;
}
.button:hover { transform: translateY(-2px); background: #bb482d; }
.button-light { background: #fff; color: var(--ink); }
.button-light:hover { background: #e5eee8; }
.text-link { font-size: 14px; font-weight: 750; border-bottom: 1px solid var(--ink); padding-block: 8px; }
.text-link:hover { color: var(--accent); border-color: var(--accent); }
.hero-card {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 100%;
  aspect-ratio: .93;
  max-height: 550px;
  overflow: hidden;
  padding: clamp(24px, 3vw, 38px);
  border-radius: 8px;
  background: radial-gradient(circle at 57% 47%, rgba(78, 137, 104, .28), transparent 52%), radial-gradient(circle at 81% 82%, rgba(229, 93, 58, .17), transparent 38%), var(--dark);
  color: #eef3ec;
}
.hero-card::before, .hero-card::after {
  content: "";
  position: absolute;
  z-index: -1;
  left: 50%;
  top: 51%;
  width: 90%;
  aspect-ratio: 1;
  border: 1px solid rgba(239, 247, 233, .26);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  transition: opacity .45s ease;
}
.hero-card::after { width: 63%; border-color: rgba(239, 247, 233, .13); }
.hero-card.is-animated::before, .hero-card.is-animated::after { opacity: 0; }
.hero-card-grid {
  position: absolute;
  z-index: -2;
  inset: 0;
  opacity: .25;
  background-image: linear-gradient(rgba(255,255,255,.075) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.075) 1px, transparent 1px);
  background-size: 64px 64px;
}
.hero-card-canvas {
  position: absolute;
  z-index: 1;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  opacity: 0;
  pointer-events: none;
  transition: opacity .45s ease;
}
.hero-card.is-animated .hero-card-canvas { opacity: 1; }
.hero-card-top, .hero-card-bottom { position: relative; z-index: 2; display: flex; justify-content: space-between; gap: 12px; color: #c8d9ce; }
.hero-card-mark { position: relative; z-index: 2; align-self: center; font-size: clamp(98px, 12vw, 180px); font-weight: 750; letter-spacing: -.13em; line-height: 1; }
.hero-card-mark span { color: var(--accent-bright); }

.focus-line { border-block: 1px solid var(--line); background: #eef1eb; }
.focus-line-inner { display: grid; grid-template-columns: repeat(3, 1fr); }
.focus-item { padding: 27px 30px; border-left: 1px solid var(--line); }
.focus-item:first-child { padding-left: 0; border-left: 0; }
.focus-label { display: block; margin-bottom: 9px; color: var(--muted); }
.focus-item strong { font-size: 16px; font-weight: 650; }

.about { display: grid; grid-template-columns: .8fr 1.2fr; gap: 10%; padding-block: clamp(90px, 11vw, 150px); }
.section-number { color: var(--accent); }
.about h2, .values h2, .connect h2 { letter-spacing: -.055em; font-weight: 700; }
.about h2 { margin-top: 20px; font-size: clamp(45px, 5vw, 72px); line-height: 1.08; }
.about-copy { padding-top: 31px; }
.about-copy p { max-width: 650px; margin-bottom: 24px; color: #33433d; font-size: clamp(17px, 1.55vw, 20px); line-height: 1.75; }
.about-copy p:last-child { margin-bottom: 0; }

.values { background: var(--soft); }
.values-inner { padding-block: clamp(78px, 9vw, 120px); }
.values-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 58px; }
.values h2 { max-width: 640px; margin-top: 17px; font-size: clamp(40px, 4.5vw, 62px); line-height: 1.12; }
.values-aside { max-width: 250px; padding-bottom: 6px; color: var(--muted); font-size: 14px; line-height: 1.6; }
.value-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid #bfcfc2; }
.value-card { min-height: 255px; padding: 32px 38px 0 0; }
.value-card + .value-card { padding-left: 38px; border-left: 1px solid #bfcfc2; }
.card-label { display: block; color: var(--accent); }
.value-card h3 { margin-top: 52px; font-size: clamp(23px, 2.2vw, 29px); line-height: 1.2; letter-spacing: -.035em; }
.value-card p { max-width: 340px; margin-top: 15px; color: var(--muted); font-size: 15px; line-height: 1.7; }

.connect {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, .88fr);
  align-items: center;
  gap: clamp(24px, 4vw, 62px);
  overflow: hidden;
  margin-block: clamp(75px, 10vw, 130px);
  padding: clamp(38px, 6vw, 76px);
  border-radius: 8px;
  background: radial-gradient(circle at 78% 50%, rgba(76, 139, 108, .3), transparent 43%), radial-gradient(circle at 90% 86%, rgba(238, 102, 68, .16), transparent 35%), var(--dark);
  color: #fff;
}
.connect-content { position: relative; z-index: 2; }
.connect .section-number { color: #f5a48d; }
.connect h2 { max-width: 650px; margin-top: 18px; font-size: clamp(42px, 5vw, 68px); line-height: 1.08; }
.connect p { max-width: 570px; margin-top: 22px; color: #c9d9cf; font-size: 17px; line-height: 1.7; }
.connect .button { margin-top: 31px; }
.connect-visual { position: relative; isolation: isolate; justify-self: end; width: min(100%, 420px); aspect-ratio: 1; }
.connect-visual::before, .connect-visual::after {
  content: "";
  position: absolute;
  inset: 7%;
  border: 1px solid rgba(207, 237, 216, .31);
  border-radius: 50%;
  box-shadow: 0 0 45px rgba(102, 197, 145, .08);
  transition: opacity .45s ease;
}
.connect-visual::after { inset: 24%; border-color: rgba(247, 142, 107, .4); transform: rotateX(62deg) rotate(28deg); }
.connect-visual-core { position: absolute; left: 50%; top: 50%; width: 14px; height: 14px; border-radius: 50%; background: #ff9674; box-shadow: 0 0 35px 12px rgba(243, 106, 69, .25); transform: translate(-50%, -50%); transition: opacity .45s ease; }
.connect-visual-canvas { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; opacity: 0; pointer-events: none; transition: opacity .45s ease; }
.connect-visual.is-animated::before, .connect-visual.is-animated::after, .connect-visual.is-animated .connect-visual-core { opacity: 0; }
.connect-visual.is-animated .connect-visual-canvas { opacity: 1; }

/* Privacy and missing pages */
.page-main { width: min(100% - 64px, 900px); margin-inline: auto; padding-block: clamp(80px, 10vw, 130px); }
.page-main h1 { max-width: 760px; margin-top: 22px; font-size: clamp(52px, 7vw, 90px); line-height: 1.04; letter-spacing: -.065em; }
.page-lede { max-width: 680px; margin-top: 26px; color: var(--muted); font-size: 20px; line-height: 1.65; }
.page-date { display: block; margin-top: 22px; color: var(--muted); font-size: 13px; }
.policy-list { margin-top: 72px; border-top: 1px solid var(--line); }
.policy-row { display: grid; grid-template-columns: 75px minmax(0, 1fr); gap: 24px; padding-block: 29px; border-bottom: 1px solid var(--line); }
.policy-row > span { padding-top: 5px; color: var(--accent); font-size: 12px; font-weight: 750; }
.policy-row h2 { font-size: 23px; letter-spacing: -.025em; }
.policy-row p { max-width: 670px; margin-top: 10px; color: var(--muted); font-size: 16px; line-height: 1.75; }
.policy-row a { border-bottom: 1px solid currentColor; }
.policy-row a:hover { color: var(--accent); }
.back-link { display: inline-flex; gap: 9px; margin-top: 36px; font-size: 14px; font-weight: 750; border-bottom: 1px solid var(--ink); padding-bottom: 6px; }
.back-link:hover { color: var(--accent); border-color: var(--accent); }
.error-main { display: flex; flex-direction: column; align-items: start; justify-content: center; }
.error-code { color: #cbd7cd; font-size: clamp(100px, 18vw, 210px); font-weight: 800; letter-spacing: -.1em; line-height: .9; }
.error-main h1 { margin-top: 35px; font-size: clamp(42px, 6vw, 72px); }
.error-main p { max-width: 610px; margin-top: 17px; color: var(--muted); font-size: 18px; line-height: 1.65; }
.error-actions { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 34px; }
.error-actions a + a { background: transparent; border-color: var(--line); color: var(--ink); }
.error-actions a + a:hover { background: var(--soft); }

/* Footer */
.site-footer { border-top: 1px solid var(--line); }
.footer-inner { display: flex; align-items: center; justify-content: space-between; gap: 30px; min-height: 91px; padding-block: 20px; }
.footer-signature { font-size: 13px; font-weight: 750; }
.footer-links { display: flex; flex-wrap: wrap; gap: 28px; }
.footer-links a { color: var(--muted); font-size: 13px; font-weight: 650; }
.footer-links a:hover { color: var(--accent); }

@media (max-width: 900px) {
  .site-nav { gap: 19px; }
  .hero { grid-template-columns: 1fr; padding-block: 88px; }
  .hero-card { max-width: 620px; aspect-ratio: 1.3; }
  .hero-card-mark { font-size: clamp(105px, 20vw, 165px); }
  .about { gap: 6%; }
  .value-card { padding-right: 20px; }
  .value-card + .value-card { padding-left: 20px; }
  .connect { grid-template-columns: 1fr; }
  .connect-visual { justify-self: center; width: min(100%, 360px); margin-top: -12px; }
}
@media (max-width: 680px) {
  .shell, .page-main { width: min(100% - 40px, 1200px); }
  .site-header { min-height: 78px; gap: 15px; }
  .brand-name, .site-nav { display: none; }
  .language-switch { margin-left: auto; }
  .language-switch a { min-width: 42px; padding: 8px 10px; }
  .hero { gap: 55px; padding-block: 72px 78px; }
  .hero h1 { font-size: clamp(76px, 15.5vw, 105px); }
  .hero-lede { margin-top: 27px; font-size: 19px; }
  .hero-actions { margin-top: 28px; }
  .hero-card { aspect-ratio: 1.02; }
  .hero-card-mark { font-size: clamp(96px, 26vw, 150px); }
  .focus-line-inner { grid-template-columns: 1fr; }
  .focus-item, .focus-item:first-child { padding: 19px 0; border-left: 0; }
  .focus-item + .focus-item { border-top: 1px solid var(--line); }
  .focus-label { margin-bottom: 5px; }
  .about { grid-template-columns: 1fr; gap: 26px; padding-block: 84px; }
  .about-copy { padding-top: 0; }
  .values-heading { display: block; margin-bottom: 33px; }
  .values-aside { margin-top: 18px; }
  .value-grid { grid-template-columns: 1fr; }
  .value-card, .value-card + .value-card { min-height: 0; padding: 28px 0 31px; border-left: 0; }
  .value-card + .value-card { border-top: 1px solid #bfcfc2; }
  .value-card h3 { margin-top: 20px; }
  .connect { grid-template-columns: 1fr; margin-block: 70px; padding: 43px 27px 25px; }
  .connect-visual { justify-self: center; width: min(100%, 320px); margin-top: 16px; }
  .page-main { padding-block: 80px 95px; }
  .page-lede { font-size: 18px; }
  .policy-list { margin-top: 55px; }
  .policy-row { grid-template-columns: 1fr; gap: 8px; padding-block: 25px; }
  .error-main { min-height: 65vh; }
  .footer-inner { align-items: start; flex-direction: column; gap: 14px; padding-block: 25px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .button, .site-nav a, .language-switch a { transition: none; }
  .hero-card::before, .hero-card::after, .hero-card-canvas, .connect-visual::before, .connect-visual::after, .connect-visual-core, .connect-visual-canvas { transition: none; }
}
