    .fm-page,
    .fm-page * { box-sizing: border-box; }

    .fm-page {
      --fm-ink: #24312e;
      --fm-text: #51615d;
      --fm-muted: #73827e;
      --fm-green: #54756a;
      --fm-deep: #36584f;
      --fm-sage: #dfeae4;
      --fm-cream: #f8f5ee;
      --fm-warm: #c89661;
      --fm-line: rgba(54, 88, 79, .15);
      --fm-shadow: 0 18px 45px rgba(48, 70, 64, .11);
      color: var(--fm-text);
      background: #fff;
      font-family: "Noto Sans KR", sans-serif;
      word-break: keep-all;
      overflow: hidden;
    }

    .fm-page img { display: block; max-width: 100%; }
    .fm-page a { color: inherit; text-decoration: none; }

    .fm-container {
      width: min(1180px, calc(100% - 48px));
      margin: 0 auto;
    }

    .fm-section { padding: 112px 0; }
    .fm-section.fm-soft { background: var(--fm-cream); }

    .fm-eyebrow {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      margin-bottom: 18px;
      color: var(--fm-deep);
      font-size: 13px;
      font-weight: 800;
      letter-spacing: .16em;
      text-transform: uppercase;
    }

    .fm-eyebrow::before {
      content: "";
      width: 28px;
      height: 1px;
      background: var(--fm-warm);
    }

    .fm-title {
      margin: 0;
      color: var(--fm-ink);
      font-size: clamp(32px, 4.3vw, 54px);
      line-height: 1.2;
      letter-spacing: -.075em;
    }

    .fm-title em {
      color: var(--fm-green);
      font-family: "Playfair Display", serif;
      font-style: normal;
      letter-spacing: -.03em;
    }

    .fm-desc {
      margin: 22px 0 0;
      color: var(--fm-text);
      font-size: 17px;
      line-height: 1.9;
    }

    /* HERO */
    .fm-hero {
      position: relative;
      min-height: 700px;
      display: flex;
      align-items: center;
      isolation: isolate;
      color: #fff;
      background:
        linear-gradient(90deg, rgba(22, 48, 42, .84) 0%, rgba(22, 48, 42, .62) 43%, rgba(22, 48, 42, .18) 100%),
        url("../img/fm03.jpg") center/cover no-repeat;
    }

    .fm-hero::after {
      content: "";
      position: absolute;
      inset: auto 0 0;
      height: 150px;
      background: linear-gradient(0deg, rgba(9, 30, 26, .38), transparent);
      z-index: -1;
    }

    .fm-hero-content { max-width: 710px; padding: 100px 0; }

    .fm-hero .fm-eyebrow { color: rgba(255,255,255,.82); }
    .fm-hero .fm-eyebrow::before { background: #efc18e; }

    .fm-hero h1 {
      margin: 0;
      color: #fff;
      font-size: clamp(48px, 7vw, 86px);
      line-height: 1.08;
      letter-spacing: -.09em;
    }

    .fm-hero h1 span {
      display: block;
      margin-top: 13px;
      color: #f4d5ae;
      font-family: "Playfair Display", serif;
      font-size: .53em;
      font-weight: 600;
      letter-spacing: -.025em;
    }

    .fm-hero p {
      max-width: 620px;
      margin: 28px 0 0;
      color: rgba(255,255,255,.9);
      font-size: 19px;
      line-height: 1.9;
    }

    .fm-hero-links {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
      margin-top: 37px;
    }

    .fm-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 9px;
      min-height: 54px;
      padding: 0 24px;
      border-radius: 100px;
      font-size: 15px;
      font-weight: 800;
      transition: .25s ease;
    }

    .fm-btn-primary { background: #f4d5ae; color: #2e4e46; }
    .fm-btn-line { border: 1px solid rgba(255,255,255,.5); color: #fff; }
    .fm-btn:hover { transform: translateY(-3px); }

    /* INTRO */
    .fm-intro-grid,
    .fm-story-grid,
    .fm-shema-grid {
      display: grid;
      grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
      gap: 72px;
      align-items: center;
    }

    .fm-quote-card {
      position: relative;
      padding: 48px 43px 42px;
      border-radius: 30px;
      background: var(--fm-deep);
      color: #fff;
      box-shadow: var(--fm-shadow);
    }

    .fm-quote-card i {
      position: absolute;
      top: -22px;
      right: 30px;
      color: rgba(255,255,255,.13);
      font-size: 88px;
    }

    .fm-quote-card blockquote {
      position: relative;
      z-index: 1;
      margin: 0;
      font-size: 19px;
      font-weight: 600;
      line-height: 1.9;
    }

    .fm-quote-card cite {
      display: block;
      margin-top: 20px;
      color: #e9bd8e;
      font-size: 14px;
      font-style: normal;
      font-weight: 700;
    }

    /* STORY */
    .fm-photo-frame {
      position: relative;
      min-height: 530px;
      overflow: hidden;
      border-radius: 34px;
      box-shadow: var(--fm-shadow);
    }

    .fm-photo-frame img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      position: absolute;
      inset: 0;
    }

    .fm-photo-badge {
      position: absolute;
      right: 22px;
      bottom: 22px;
      max-width: 240px;
      padding: 19px 20px;
      border-radius: 18px;
      background: rgba(255,255,255,.92);
      color: var(--fm-ink);
      font-size: 14px;
      font-weight: 700;
      line-height: 1.7;
      backdrop-filter: blur(9px);
    }

    .fm-timeline { margin-top: 38px; }

    .fm-timeline-item {
      position: relative;
      display: grid;
      grid-template-columns: 44px 1fr;
      gap: 18px;
      padding-bottom: 24px;
    }

    .fm-timeline-item:not(:last-child)::after {
      content: "";
      position: absolute;
      left: 21px;
      top: 43px;
      bottom: 2px;
      width: 1px;
      background: var(--fm-line);
    }

    .fm-timeline-num {
      width: 44px;
      height: 44px;
      display: flex;
      align-items: center;
      justify-content: center;
      border-radius: 50%;
      background: var(--fm-sage);
      color: var(--fm-deep);
      font-size: 15px;
      font-weight: 800;
    }

    .fm-timeline-item h3 {
      margin: 1px 0 7px;
      color: var(--fm-ink);
      font-size: 19px;
    }

    .fm-timeline-item p {
      margin: 0;
      color: var(--fm-muted);
      font-size: 15px;
      line-height: 1.75;
    }

    /* VERSE BAND */
    .fm-verse-band {
      position: relative;
      padding: 78px 0;
      overflow: hidden;
      background: var(--fm-deep);
      color: #fff;
      text-align: center;
    }

    .fm-verse-band::before,
    .fm-verse-band::after {
      content: "";
      position: absolute;
      border: 1px solid rgba(255,255,255,.08);
      border-radius: 50%;
    }

    .fm-verse-band::before { width: 340px; height: 340px; left: -90px; top: -165px; }
    .fm-verse-band::after { width: 420px; height: 420px; right: -110px; bottom: -230px; }

    .fm-verse-band p {
      position: relative;
      z-index: 1;
      max-width: 900px;
      margin: 0 auto;
      color: #fff;
      font-size: clamp(22px, 3vw, 33px);
      font-weight: 700;
      line-height: 1.55;
      letter-spacing: -.045em;
    }

    .fm-verse-band span {
      display: block;
      margin-top: 17px;
      color: #efc18e;
      font-size: 15px;
      font-weight: 700;
    }

    /* REASONS */
    .fm-heading-center { max-width: 720px; margin: 0 auto 47px; text-align: center; }
    .fm-heading-center .fm-eyebrow::before { display: none; }

    .fm-card-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 18px;
    }

    .fm-card {
      min-height: 270px;
      padding: 30px 28px 27px;
      border: 1px solid var(--fm-line);
      border-radius: 24px;
      background: #fff;
      transition: .25s ease;
    }

    .fm-card:hover {
      border-color: transparent;
      transform: translateY(-8px);
      box-shadow: var(--fm-shadow);
    }

    .fm-icon {
      width: 58px;
      height: 58px;
      display: flex;
      align-items: center;
      justify-content: center;
      border-radius: 18px;
      background: var(--fm-sage);
      color: var(--fm-deep);
      font-size: 21px;
    }

    .fm-card h3 {
      margin: 22px 0 10px;
      color: var(--fm-ink);
      font-size: 20px;
      letter-spacing: -.04em;
    }

    .fm-card p {
      margin: 0;
      color: var(--fm-muted);
      font-size: 15px;
      line-height: 1.8;
    }

    /* RELATIONSHIPS */
    .fm-relation-wrap {
      padding: 56px;
      border-radius: 34px;
      background: var(--fm-deep);
      color: #fff;
    }

    .fm-relation-top {
      display: grid;
      grid-template-columns: 1fr .9fr;
      gap: 30px;
      align-items: end;
      margin-bottom: 34px;
    }

    .fm-relation-wrap .fm-title,
    .fm-relation-wrap .fm-desc { color: #fff; }
    .fm-relation-wrap .fm-desc { color: rgba(255,255,255,.72); margin: 0; }

    .fm-relation-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 14px;
    }

    .fm-relation {
      padding: 26px 23px;
      border: 1px solid rgba(255,255,255,.12);
      border-radius: 20px;
      background: rgba(255,255,255,.075);
    }

    .fm-relation i { color: #efc18e; font-size: 22px; }
    .fm-relation h3 { margin: 17px 0 8px; color: #fff; font-size: 19px; }
    .fm-relation p { margin: 0; color: rgba(255,255,255,.68); font-size: 14px; line-height: 1.8; }

    /* SHEMA */
    .fm-shema-photo {
      min-height: 500px;
      border-radius: 32px;
      overflow: hidden;
      box-shadow: var(--fm-shadow);
    }

    .fm-shema-photo img { width: 100%; height: 500px; object-fit: cover; }

    .fm-scripture {
      margin-top: 29px;
      padding: 24px 25px;
      border-left: 4px solid var(--fm-warm);
      background: var(--fm-cream);
      color: var(--fm-ink);
      font-size: 16px;
      font-weight: 600;
      line-height: 1.95;
    }

    .fm-scripture span {
      display: block;
      margin-top: 12px;
      color: var(--fm-green);
      font-size: 13px;
      font-weight: 800;
    }

    /* CLOSING */
    .fm-closing {
      position: relative;
      padding: 112px 0;
      text-align: center;
      background:
        linear-gradient(rgba(31,66,58,.88), rgba(31,66,58,.88)),
        url("../img/fm04.jpg") center/cover no-repeat;
      color: #fff;
    }

    .fm-closing h2 {
      margin: 0;
      color: #fff;
      font-size: clamp(34px, 4.3vw, 57px);
      line-height: 1.25;
      letter-spacing: -.075em;
    }

    .fm-closing p {
      max-width: 690px;
      margin: 21px auto 0;
      color: rgba(255,255,255,.78);
      font-size: 17px;
      line-height: 1.9;
    }

    /* TABLET */
    @media (max-width: 1024px) {
      .fm-section { padding: 88px 0; }
      .fm-hero { min-height: 620px; }
      .fm-intro-grid,
      .fm-story-grid,
      .fm-shema-grid { gap: 43px; }
      .fm-relation-wrap { padding: 42px; }
    }

    /* MOBILE */
    @media (max-width: 760px) {
      .fm-container { width: min(100% - 30px, 640px); }
      .fm-section { padding: 68px 0; }

      .fm-hero {
        min-height: 610px;
        align-items: flex-end;
        background-position: 57% center;
      }

      .fm-hero-content { padding: 105px 0 66px; }
      .fm-hero p { margin-top: 22px; font-size: 16px; line-height: 1.8; }
      .fm-btn { min-height: 50px; padding: 0 19px; font-size: 14px; }

      .fm-intro-grid,
      .fm-story-grid,
      .fm-shema-grid,
      .fm-relation-top { grid-template-columns: 1fr; gap: 30px; }

      .fm-title { font-size: 34px; }
      .fm-desc { margin-top: 17px; font-size: 15px; line-height: 1.85; }

      .fm-quote-card { padding: 35px 25px 30px; border-radius: 23px; }
      .fm-quote-card i { top: -15px; right: 20px; font-size: 68px; }
      .fm-quote-card blockquote { font-size: 16px; line-height: 1.9; }

      .fm-story-grid .fm-photo-frame { order: 2; }
      .fm-photo-frame { min-height: 330px; border-radius: 24px; }
      .fm-photo-badge { right: 15px; bottom: 15px; left: 15px; max-width: none; padding: 15px 16px; font-size: 13px; }

      .fm-timeline { margin-top: 27px; }
      .fm-timeline-item { grid-template-columns: 38px 1fr; gap: 14px; padding-bottom: 20px; }
      .fm-timeline-num { width: 38px; height: 38px; font-size: 13px; }
      .fm-timeline-item:not(:last-child)::after { left: 18px; top: 38px; }
      .fm-timeline-item h3 { font-size: 17px; }
      .fm-timeline-item p { font-size: 14px; }

      .fm-verse-band { padding: 58px 0; }
      .fm-verse-band p { font-size: 22px; line-height: 1.6; }

      .fm-heading-center { margin-bottom: 31px; }
      .fm-card-grid { grid-template-columns: 1fr; gap: 13px; }
      .fm-card { min-height: auto; padding: 24px 22px; border-radius: 19px; }
      .fm-icon { width: 52px; height: 52px; border-radius: 16px; font-size: 19px; }
      .fm-card h3 { margin-top: 17px; font-size: 18px; }
      .fm-card p { font-size: 14px; }

      .fm-relation-wrap { padding: 29px 22px; border-radius: 24px; }
      .fm-relation-top { margin-bottom: 24px; }
      .fm-relation-grid { grid-template-columns: 1fr; gap: 11px; }
      .fm-relation { padding: 21px 19px; }

      .fm-shema-photo { min-height: 310px; border-radius: 23px; }
      .fm-shema-photo img { height: 310px; }
      .fm-scripture { margin-top: 22px; padding: 19px 18px; font-size: 14px; line-height: 1.9; }

      .fm-closing { padding: 78px 0; }
      .fm-closing p { font-size: 15px; }
    }
