:root {
  color-scheme: light;
  --paper: #ffffff;
  --ink: #484848;
  --secondary: #656565;
  --rule: #c8c8c8;
  --column-label: 12rem;
  --column-gap: 4rem;
  --section-space: 4rem;
  font-family: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-weight: 400;
  color: var(--ink);
  background: var(--paper);
  font-synthesis: none;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
* { box-sizing: border-box; }
html { scroll-padding-top: 2rem; }
body { margin: 0; font-size: 1.0625rem; line-height: 2.05; letter-spacing: .035em; }
a { color: inherit; text-underline-offset: .35em; text-decoration-thickness: 1px; }
a:focus-visible { outline: 2px solid var(--ink); outline-offset: 6px; }
::selection { background: #e6e6e6; color: #303030; }
.page-width { width: min(100% - 7rem, 70rem); margin-inline: auto; }
.site-header { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-block: 1.75rem; }
.header-brand { display: inline-flex; align-items: center; flex-shrink: 0; gap: 1.25rem; text-decoration: none; }
.wordmark { font-size: 2.75rem; font-weight: 300; line-height: 1; letter-spacing: .015em; padding-block: .25rem; }
.brand-name { font-size: .875rem; letter-spacing: .045em; }
.site-header nav { display: flex; align-items: center; flex-wrap: wrap; gap: .2rem 1.8rem; }
.site-header nav a { font-size: .875rem; line-height: 1.5; padding-block: .75rem; text-decoration: none; }
.site-header nav a:hover { text-decoration: underline; }
.intro { display: grid; grid-template-columns: var(--column-label) minmax(0, 1fr); column-gap: var(--column-gap); align-items: center; padding-block: 5.5rem; }
.intro-identity { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: .75rem 0; }
.intro-wordmark { font-size: 10rem; font-weight: 300; line-height: 1.03; letter-spacing: .015em; }
.intro-name { margin-top: 1.5rem; color: var(--ink); font-size: 1rem; letter-spacing: .08em; }
.intro h1 { min-width: 0; }
h1 { margin: 0; font-size: clamp(1.5rem, 2.2vw, 1.875rem); font-weight: 300; line-height: 1.95; letter-spacing: .045em; }
h2 { margin: 0; font-size: 1.375rem; line-height: 1.65; font-weight: 400; letter-spacing: .04em; }
p { margin: 0; overflow-wrap: anywhere; }
section { scroll-margin-top: 2rem; }
.section-grid { display: grid; grid-template-columns: var(--column-label) minmax(0, 1fr); gap: var(--column-gap); }
.section-content { min-width: 0; }
/* One full-width rule marks each major block; content within a block uses space only. */
.section-block { border-top: 1px solid var(--rule); padding-block: var(--section-space); }
.about-copy { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem var(--column-gap); }
.about-lead { grid-column: 1 / -1; font-size: 1.25rem; line-height: 1.95; }
.business-list { display: grid; gap: 1rem; list-style: none; padding: 0; margin: 1.5rem 0 0; }
.business-list li { overflow-wrap: anywhere; }
.information-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--column-gap); }
.information-grid h2 { margin-bottom: 2rem; }
.company-details { margin: 0; }
.company-details > div { display: grid; grid-template-columns: 8rem minmax(0, 1fr); gap: 1rem; padding-block: .4rem; }
.company-details > div:first-child { padding-top: 0; }
dt { color: var(--secondary); font-size: .9375rem; }
dd { margin: 0; overflow-wrap: anywhere; }
.site-footer { margin-top: 1.5rem; color: var(--secondary); font-size: .875rem; }
.footer-content { display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; padding-block: 1.6rem; }
.site-footer small { font: inherit; font-size: .8125rem; letter-spacing: .02em; }
.skip-link { position: absolute; top: -8rem; left: 1rem; padding: .5rem 1rem; background: var(--paper); z-index: 2; }
.skip-link:focus { top: 1rem; }
@media (max-width: 1000px) {
  :root { --column-label: 10rem; --column-gap: 2.5rem; }
  .intro-wordmark { font-size: 8rem; }
  .desktop-break { display: none; }
  .site-header nav { gap: .2rem 1.1rem; }
  .about-copy { grid-template-columns: minmax(0, 1fr); row-gap: 1.65rem; }
}
@media (max-width: 800px) {
  .page-width { width: calc(100% - 3.5rem); }
  .site-header { flex-wrap: wrap; gap: 1rem 2rem; padding-block: 1.5rem; }
  .site-header nav { gap: .1rem 1.15rem; }
  .intro { padding-block: 4rem; }
  .intro-wordmark { font-size: 7.5rem; }
  h1 { font-size: 1.5rem; }
  .about-lead { font-size: 1.125rem; }
  .company-details > div { grid-template-columns: 5.6rem minmax(0, 1fr); }
}
@media (max-width: 620px) {
  :root { --section-space: 3rem; --column-gap: 1.75rem; }
  body { font-size: 1rem; line-height: 2; letter-spacing: .025em; }
  .page-width { width: calc(100% - 3rem); }
  .site-header { display: block; padding-top: 1.5rem; padding-bottom: .75rem; }
  .wordmark { font-size: 2.5rem; }
  .site-header nav { margin-top: .75rem; gap: .15rem 1rem; }
  .site-header nav a { font-size: .875rem; }
  .intro { grid-template-columns: minmax(0, 1fr); gap: 2.5rem; padding-block: 3rem; }
  .intro-identity { flex-direction: row; justify-content: flex-start; align-items: baseline; gap: 1.5rem; padding: 0; }
  .intro-wordmark { font-size: 6.5rem; }
  .intro-name { margin-top: 0; font-size: .9375rem; }
  h1 { font-size: 1.45rem; line-height: 1.95; letter-spacing: .025em; }
  h2 { font-size: 1.25rem; }
  .section-grid { grid-template-columns: minmax(0, 1fr); }
  .about-copy { row-gap: 1.5rem; }
  .information-grid { grid-template-columns: minmax(0, 1fr); row-gap: var(--section-space); }
  .information-grid h2 { margin-bottom: var(--column-gap); }
  .site-footer { margin-top: 1rem; }
}
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}
