.aw {
  --aw-paper: #f4f2e8;
  --aw-blue: #193f52;
  --aw-ink: #213f4a;
  --aw-rust: #945136;
  --aw-sans: "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  --aw-serif: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", serif;
  color: var(--aw-ink);
  background: var(--aw-paper);
  font-family: var(--aw-sans);
  scroll-margin-top: 80px;
}
.aw *, .aw *::before, .aw *::after { box-sizing: border-box; }
html.lenis { scroll-behavior: auto; }
@media (prefers-reduced-motion: no-preference) {
  @keyframes aima-photo-arrival {
    from { opacity: .55; translate: 0 14px; }
    to { opacity: 1; translate: 0 0; }
  }
  .aima-arrived { animation: aima-photo-arrival .65s cubic-bezier(.18,.7,.25,1); }
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .aw-portrait img, .aw-portrait figcaption, .aw-link i { transition: transform .38s cubic-bezier(.18,.7,.25,1); }
  .aw-person:hover .aw-portrait img { transform: translateY(-3px) scale(1.025); }
  .aw-person:hover .aw-portrait figcaption { transform: translateY(-4px); }
  .aw-link:is(:hover,:focus-visible) i { transform: translateY(3px); }
}
.aw :is(p, h2, h3, figure, ol) { margin: 0; }
.aw img { display: block; width: 100%; height: 100%; object-fit: cover; }
.aw .aw-inner { width: min(83%, 1130px); margin-inline: auto; }
.aw h2, .aw h3 { color: inherit; font-family: var(--aw-sans); font-weight: 800; }
.aw h2 { font-size: clamp(34px, 3.65vw, 58px); line-height: 1.48; letter-spacing: .035em; }
.aw .aw-index { display: flex; align-items: center; gap: 10px; margin-bottom: 13px; font-weight: 700; font-size: 12px; letter-spacing: .12em; color: var(--aw-rust); }
.aw-index b { font: italic 18px/1 Georgia, serif; letter-spacing: .03em; }
.aw-index b::after { content: ""; display: inline-block; width: 25px; border-top: 1px solid currentColor; margin: 0 0 .26em 9px; }
.aw p, .aw li { font-size: clamp(14px, 1.1vw, 17px); line-height: 1.95; font-weight: 500; }
.aw .aw-link, .aw-disclose > summary {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  width: fit-content;
  padding: 7px 0;
  border-bottom: 1px solid currentColor;
  color: inherit;
  font: 700 14px/1.5 var(--aw-sans);
  text-decoration: none;
  list-style: none;
  cursor: pointer;
}
.aw summary::-webkit-details-marker { display: none; }
.aw .aw-link i, .aw-disclose > summary i {
  display: inline-grid;
  place-items: center;
  width: 23px;
  height: 23px;
  border-radius: 50%;
  color: var(--aw-paper);
  background: var(--aw-ink);
  font: bold 13px/1 var(--aw-sans);
}
.aw a:focus-visible, .aw summary:focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }
.aw .aw-link:hover, .aw-disclose > summary:hover { opacity: .8; }
.aw-about { padding-block: clamp(78px, 8.5vw, 141px) clamp(65px, 8vw, 120px); overflow-x: clip; }
.aw .aw-about-layout { display: grid; grid-template-columns: minmax(0,.93fr) minmax(0,1.28fr); align-items: start; gap: clamp(16px, 4vw, 74px); }
.aw-about-copy { position: relative; padding-top: clamp(6px, 2vw, 33px); }
.aw-about-copy > p:not(.aw-index) { margin-top: 18px; }
.aw-about-copy > .aw-link { margin-top: 15px; }
.aw-map { max-width: 350px; margin-top: 16px !important; }
.aw-map svg { width: 100%; height: auto; display: block; transform: rotate(-2deg); }
.aw-map .aw-floorplan { display: none; }
.aw-collage { position: relative; aspect-ratio: .81; min-height: 570px; margin-right: -7%; }
.aw .aw-collage img { position: absolute; border-radius: 4px; }
.aw .aw-about-main { left: 3%; top: 0; width: 81%; height: 62%; }
.aw .aw-about-side { right: 0; top: 49%; width: 43%; height: 25%; }
.aw .aw-about-low { left: -2%; bottom: 6%; width: 58%; height: 27%; }
.aw .aw-about-small { right: 7%; bottom: 0; width: 37%; height: 21%; }

.aw-ink {
  --aw-wave: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 64' preserveAspectRatio='none'%3E%3Cpath fill='%239db2a9' d='M0 23Q79-4 158 14T324 35T489 19T665 23T862 12T1011 23T1200 11V64H0Z'/%3E%3Cpath fill='%23193f52' d='M0 30Q90 14 172 29T343 31T524 17T716 35T881 23T1062 34T1200 26V64H0Z'/%3E%3C/svg%3E");
  background-color: var(--aw-blue);
  background-image: radial-gradient(ellipse at 17% 24%, #36607790, transparent 56%), repeating-linear-gradient(2deg, transparent 0 4px, #aecad405 4px 5px);
  position: relative; color: var(--aw-paper);
}
.aw-ink::before, .aw-ink::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: clamp(33px, 4.2vw, 70px);
  background: var(--aw-wave) center / 100% 100% no-repeat;
  pointer-events: none;
}
.aw-ink::before { bottom: calc(100% - 1px); }
.aw-ink::after { top: calc(100% - 1px); transform: rotate(180deg); }
.aw-ink .aw-index { color: #d5c3a2; }
.aw-ink .aw-link i, .aw-ink .aw-disclose > summary i { color: var(--aw-blue); background: var(--aw-paper); }
.aw-work { padding-block: clamp(60px, 6vw, 90px) clamp(45px, 4.4vw, 74px); }
.aw .aw-work-layout { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(0,.85fr); gap: clamp(30px, 6vw, 94px); align-items: center; }
.aw-work-photos { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.aw-work-photos img { aspect-ratio: 1.55; height: auto; border-radius: 3px; }
.aw-work-photos img:first-child { grid-column: span 2; aspect-ratio: 1.75; }
.aw-work-copy > p:not(.aw-index) { margin: 18px 0 17px; }
.aw-spool { width: 108px; margin: 15px 0 -6px auto; display: block; color: #b4c5ba; }
.aw-disclose { width: 100%; }
.aw-disclose[open] > summary i { transform: rotate(45deg); }
.aw .aw-steps h3 { font-size: 19px; line-height: 1.5; }
.aw .aw-steps > ol, .aw .aw-disclose > p { margin: 13px 0 0; }
.aw .aw-steps > ol { padding: 0 0 0 1.35em; }
.aw-steps li { padding-left: 3px; margin-bottom: 9px; font-size: 14px; }
.aw-steps li strong { margin-right: .6em; }
.aw-film {
  --photo-width: max(25vw, clamp(240px, 36.4vw, 640px));
  --photo-gap: clamp(14px, 1.35vw, 24px);
  --step-down: clamp(27px, 2.65vw, 46px);
  --loop-time: 60s;
  position: relative; margin-top: clamp(40px, 5vw, 80px);
}
.aw-film__window { overflow: hidden; overflow: clip; }
.aw-film__track { display: flex; width: max-content; animation: aw-film-flow var(--loop-time) linear infinite; }
.aw-film__set { flex: none; display: flex; align-items: flex-start; gap: var(--photo-gap); padding-right: var(--photo-gap); }
.aw-film figure { width: var(--photo-width); flex: none; }
.aw-film figure:nth-child(odd) { margin-top: var(--step-down); }
.aw-film img { height: auto; aspect-ratio: 1.49; }
.aw-film figcaption { padding: 9px 8px 0 12px; font: 600 12px/1.5 var(--aw-serif); letter-spacing: .13em; }
.aw-film__pause { position: absolute; width: 1px; height: 1px; clip-path: inset(50%); }
.aw-film__control { display: flex; align-items: center; width: fit-content; margin: 8px 4% 0 auto; min-height: 36px; padding-inline: 8px; font-size: 12px; cursor: pointer; }
.aw-film__control span:last-child, .aw-film__pause:checked ~ .aw-film__control span:first-child { display: none; }
.aw-film__pause:checked ~ .aw-film__control span:last-child { display: inline; }
.aw-film__pause:checked ~ .aw-film__window .aw-film__track { animation-play-state: paused; }
.aw-film__pause:focus-visible ~ .aw-film__control { outline: 2px solid currentColor; }
@keyframes aw-film-flow { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
  .aw-film__track { width: 100%; animation: none; }
  .aw-film__set { width: 100%; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .aw-film__set[aria-hidden], .aw-film__pause, .aw-film__control { display: none; }
  .aw-film figure { width: auto; }
}
@media (prefers-reduced-motion: reduce) and (max-width: 760px) {
  .aw-film__set { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.aw-people { padding: clamp(88px, 9vw, 137px) 0 clamp(102px, 9vw, 148px); }
.aw-centered { text-align: center; }
.aw-centered .aw-index { justify-content: center; }
.aw .aw-centered > p:not(.aw-index) { margin-top: 13px; }
.aw-team { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: clamp(21px, 3.8vw, 60px); max-width: 970px; margin: clamp(31px, 4vw, 62px) auto 0; align-items: start; }
.aw-person:nth-child(2) { margin-top: clamp(15px, 2.6vw, 38px); }
.aw-team:focus-visible { outline: 2px solid var(--aw-blue); outline-offset: -2px; }
.aw-portrait { position: relative; }
.aw-portrait img { aspect-ratio: .94; height: auto; clip-path: polygon(13% 6%, 48% 0, 79% 4%, 94% 18%, 100% 49%, 95% 75%, 81% 92%, 50% 100%, 19% 92%, 4% 76%, 0 46%, 6% 21%); object-position: center 42%; }
.aw-person:nth-child(2) .aw-portrait img { clip-path: polygon(6% 18%, 30% 3%, 63% 1%, 85% 9%, 98% 31%, 99% 68%, 88% 88%, 60% 98%, 25% 96%, 6% 77%, 0 46%); }
.aw-role { position: absolute; top: 5%; left: 0; writing-mode: vertical-rl; background: var(--aw-blue); color: var(--aw-paper); font: 700 clamp(16px, 1.55vw, 24px)/1.2 var(--aw-sans); letter-spacing: .12em; padding: 10px 7px; }
.aw-voice { margin-top: 15px; padding-top: 12px; border-top: 1px solid #a4aba0; }
.aw .aw-voice h3 { font: 700 18px/1.65 var(--aw-serif); }
.aw .aw-voice p { margin-top: 6px; font-size: 14px; }

.aw-recruit { padding: clamp(48px, 5vw, 75px) 0 clamp(66px, 6vw, 95px); }
.aw .aw-recruit-photo { position: relative; margin: 33px 0 0; }
.aw-recruit-photo img { aspect-ratio: 2.2; height: auto; border-radius: 5px; object-position: center 40%; }
.aw-recruit-photo figcaption { display: flex; flex-direction: row-reverse; align-items: flex-start; gap: 5px; position: absolute; right: 2%; top: -12px; }
.aw-recruit-photo figcaption span { writing-mode: vertical-rl; background: var(--aw-paper); color: var(--aw-ink); font: 700 clamp(17px, 2vw, 31px)/1.2 var(--aw-serif); letter-spacing: .12em; padding: 10px 5px; }
.aw-recruit-photo figcaption span + span { margin-top: 13px; }
.aw-recruit-copy { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(18px, 4vw, 62px); margin-top: 31px; align-items: start; }
.aw-recruit-copy > h3 { font-size: clamp(28px, 2.9vw, 41px); line-height: 1.45; letter-spacing: .04em; }
.aw-recruit-guide { margin-top: 22px; }
.aw-recruit-guide h4 { margin: 0 0 6px; font-size: 17px; line-height: 1.5; }
.aw-recruit-guide .aw-link { font-size: 13px; margin-top: 8px; }
.aw-mobile { display: none; }
@media (min-width: 1024px) {
  .aw-about .aw-inner, .aw-work .aw-inner, .aw-recruit .aw-inner { width: min(75%, 1320px); }
  .aw-about { padding-block: clamp(76px, 6.65vw, 118px) clamp(98px, 8.9vw, 155px); }
  .aw .aw-about-layout { grid-template-columns: 44.6% 49%; gap: 6.4%; }
  .aw-about-copy { align-self: stretch; display: flex; flex-direction: column; align-items: flex-start; }
  .aw-map { width: 93%; max-width: 530px; margin-top: auto !important; }
  .aw-map .aw-map-simple { display: none; }
  .aw-map .aw-floorplan { display: block; }
  .aw-collage { aspect-ratio: auto; height: clamp(870px, 83.6vw, 1465px); }
  .aw .aw-about-main { left: 5%; width: 93%; height: 56.2%; }
  .aw .aw-about-side { left: 71%; right: auto; top: 51.7%; width: 37%; height: 22%; }
  .aw .aw-about-low { left: -7.5%; top: 66%; bottom: auto; width: 67%; height: 23.8%; }
  .aw .aw-about-small { left: 52%; right: auto; top: 79.2%; bottom: auto; width: 47%; height: 16.6%; }
  .aw-work { padding-block: clamp(165px, 17.45vw, 300px) clamp(92px, 9vw, 155px); }
  .aw .aw-work-layout { grid-template-columns: 58.3% minmax(0, 1fr); gap: 9.5%; }
  .aw-work-photos { gap: clamp(14px, 1.35vw, 23px); }
  .aw-work-photos img { aspect-ratio: 1.35; }
  .aw-work-photos img:first-child { aspect-ratio: 1.5; }
  .aw-film { margin-top: clamp(150px, 15.2vw, 265px); }
  .aw-recruit { padding-block: clamp(99px, 10.9vw, 190px) clamp(66px, 5.75vw, 106px); }
  .aw .aw-recruit-photo { margin-top: clamp(32px, 3.8vw, 64px); }
  .aw-recruit-photo img { aspect-ratio: 1.5; object-position: center; }
  .aw-recruit-copy { margin-top: clamp(32px, 3.5vw, 62px); }
}
@media(max-width: 760px) {
  .aw { scroll-margin-top: 65px; }
  .aw .aw-inner { width: 88%; }
  .aw-desktop { display: none; }
  .aw-mobile { display: initial; }
  .aw-about { padding: 54px 0 65px; }
  .aw .aw-about-layout { grid-template-columns: 1fr; gap: 20px; }
  .aw-about-copy { padding-top: 0; }
  .aw-about-copy > p:not(.aw-index) { margin-top: 13px; }
  .aw-map { width: min(70%,270px); margin-top: 2px !important; }
  .aw-collage { width: 100%; min-height: 0; aspect-ratio: 1.08; margin: 0; }
  .aw .aw-about-main { width: 70%; height: 70%; }
  .aw .aw-about-side { width: 40%; height: 35%; top: 25%; }
  .aw .aw-about-low { width: 48%; height: 35%; bottom: 0; left: 2%; }
  .aw .aw-about-small { width: 40%; height: 35%; right: 3%; bottom: 0; }
  .aw .aw-work-layout { display: flex; flex-direction: column-reverse; align-items: stretch; gap: 23px; }
  .aw-work { padding: 40px 0 33px; }
  .aw-work-copy { position: relative; }
  .aw-spool { display: none; }
  .aw-film { --photo-width: clamp(155px, 46.15vw, 300px); --photo-gap: 12px; --step-down: 30px; --loop-time: 36s; }
  .aw-film figcaption { font-size: 10px; padding: 5px 4px 5px 9px; }
  .aw-people { padding: 72px 0 78px; }
  .aw-people .aw-inner { width: 92%; }
  .aw-team { gap: 14px; }
  .aw-role { font-size: 15px; padding: 7px 3px; }
  .aw .aw-voice h3 { font-size: 16px; }
  .aw-recruit-photo img { aspect-ratio: 1.52; }
  .aw-recruit-copy { grid-template-columns: 1fr; gap: 12px; margin-top: 20px; }
}
@media(max-width: 520px) {
  .aw-people .aw-inner { width: 88%; }
  .aw .aw-recruit-photo { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px; align-items: center; }
  .aw-recruit-photo figcaption { position: static; gap: 2px; }
  .aw-recruit-photo figcaption span { font-size: 17px; padding: 5px 2px; }
}
@media (max-width: 700px) {
  .aw .aw-inner { width: min(82%, 485px); }
  .aw-about { padding-block: clamp(48px, 19vw, 84px) 48px; }
  .aw .aw-about-layout { display: block; }
  .aw-about-copy { display: flex; flex-direction: column; align-items: flex-start; }
  .aw-about-copy > p:not(.aw-index) { margin-top: 20px; font-size: 16px; line-height: 2.2; }
  .aw-about-copy > .aw-link { margin-top: 24px; }
  .aw-map { width: 100%; max-width: 410px; margin: clamp(45px, 20vw, 82px) auto 0 !important; }
  .aw-map .aw-map-simple, .aw-collage { display: none; }
  .aw-map .aw-floorplan { display: block; aspect-ratio: 320 / 315; }

  .aw-work { padding-block: 76px clamp(33px, 13.2vw, 57px); }
  .aw .aw-work-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
  .aw-work-copy { display: contents; }
  .aw-work-copy > .aw-index { grid-row: 1; justify-content: center; margin-bottom: 5px; }
  .aw-work-copy > h2 { grid-row: 2; text-align: center; }
  .aw-work-photos { grid-row: 3; margin-top: 27px; gap: 8px; }
  .aw-work-photos img { aspect-ratio: 1.35; }
  .aw-work-photos img:first-child { aspect-ratio: 1.5; }
  .aw-work-copy > p:not(.aw-index) { grid-row: 4; margin: 20px 0 8px; font-size: 15px; }
  .aw-work-copy > .aw-steps { grid-row: 5; margin-top: 12px; }
  .aw-film { margin-top: clamp(55px, 18vw, 86px); }

  .aw-people { padding-block: 72px clamp(89px, 33.4vw, 145px); }
  .aw-people .aw-inner { width: 100%; }
  .aw-people .aw-centered { padding-inline: 14px; }
  .aw-team {
    --aw-portrait: clamp(195px, 59vw, 294px);
    display: flex;
    align-items: flex-start;
    gap: clamp(20px, 6.5vw, 36px);
    width: 100%;
    max-width: none;
    overflow-x: auto;
    padding: 5px calc((100% - var(--aw-portrait)) / 2) 14px;
    margin-top: 32px;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
    scrollbar-color: #829898 transparent;
  }
  .aw-team .aw-person { flex: 0 0 var(--aw-portrait); margin: 0; scroll-snap-align: center; }
  .aw-portrait img { width: 100%; aspect-ratio: 1; }
  .aw-role { position: absolute; left: 0; top: 4%; writing-mode: vertical-rl; padding: 9px 6px; font-size: 18px; letter-spacing: .14em; }
  .aw .aw-voice p { font-size: 14px; }

  .aw-recruit { padding-block: 64px 39px; }
  .aw .aw-recruit-photo { display: block; width: 100vw; margin: 25px calc(50% - 50vw) 0; }
  .aw-recruit-photo img { width: 100%; aspect-ratio: 1.47; border-radius: 0; }
  .aw-recruit-photo figcaption { position: absolute; top: -11px; right: 1%; gap: 2px; }
  .aw-recruit-photo figcaption span { font-size: 15px; padding: 6px 2px; }
  .aw-recruit-copy { margin-top: 26px; }
}
