/* Potomac Solutions v0.2: semantic HTML, native layout, no required JS.
 * Visual system: docs/design/visual-system.md and docs/BRAND.md
 */
@layer reset, tokens, base, layout, components, motion, utilities;
@layer reset {
  *, *::before, *::after { box-sizing: border-box; }
  html { text-size-adjust: 100%; -webkit-text-size-adjust: 100%; }
  body, h1, h2, h3, p { margin-block-start: 0; }
  img, svg { max-width: 100%; }
  img { display: block; height: auto; }
  button, input { font: inherit; }
}
@layer tokens {
  :root {
    color-scheme: dark light;
    --ps-bg: #101820;
    --ps-surface: #182830;
    --ps-elevated: #21333A;
    --ps-text: #F3F7F5;
    --ps-muted: #C4D3CE;
    --ps-border: #59746F;
    --ps-accent: #B5ECDB;
    --ps-accent-contrast: #112622;
    --ps-current-line: #B5ECDB;
    --ps-focus: #B5ECDB;
    --ps-paper: #EAEDE8;
    --ps-paper-text: #152B2B;
    --ps-paper-muted: #365451;
    --ps-paper-accent: #205C50;
    --ps-font-body: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --ps-font-mono: ui-monospace, "Cascadia Code", "SFMono-Regular", Consolas, monospace;
    --ps-max: 1180px;
    --ps-measure: 69ch;
    --ps-gutter: clamp(1.125rem, 4vw, 3.5rem);
    --ps-radius: 1.15rem;
    --ps-radius-sm: 0.55rem;
    --ps-space-1: 0.5rem;
    --ps-space-2: 1rem;
    --ps-space-3: 1.5rem;
    --ps-space-4: 2.5rem;
    --ps-space-5: clamp(3.5rem, 8vw, 7.5rem);
    --ps-motion-fast: 150ms;
    --ps-motion-medium: 260ms;
    --ps-ease: cubic-bezier(0.22, 1, 0.36, 1);
  }
  @media (prefers-color-scheme: light) {
    :root {
      --ps-bg: #EAEDE8;
      --ps-surface: #FFFFFF;
      --ps-elevated: #F2F5F1;
      --ps-text: #152B2B;
      --ps-muted: #34504D;
      --ps-border: #6F8A83;
      --ps-accent: #205C50;
      --ps-accent-contrast: #FFFFFF;
      --ps-current-line: #205C50;
      --ps-focus: #205C50;
    }
  }
}
@layer base {
  html { scroll-behavior: auto; }
  body { margin: 0; min-width: 280px; background: var(--ps-bg); color: var(--ps-text); font-family: var(--ps-font-body); font-size: 1rem; line-height: 1.6; }
  a { color: inherit; text-underline-offset: 0.25em; }
  a:focus-visible, button:focus-visible, summary:focus-visible { outline: 3px solid var(--ps-focus); outline-offset: 4px; border-radius: 3px; }
  h1, h2, h3 { overflow-wrap: break-word; line-height: 1.06; letter-spacing: -0.048em; text-wrap: balance; }
  h1 { font-size: clamp(3.1rem, 7.6vw, 7.7rem); font-weight: 780; }
  h2 { font-size: clamp(2.2rem, 4.9vw, 4.8rem); }
  h3 { font-size: clamp(1.45rem, 2.5vw, 2.15rem); }
  p { max-width: var(--ps-measure); }
  ::selection { background: var(--ps-accent); color: var(--ps-accent-contrast); }
}
@layer layout {
  .site-frame { min-height: 100vh; }
  .container { width: min(var(--ps-max), calc(100% - 2 * var(--ps-gutter))); margin-inline: auto; }
  .site-header { position: relative; z-index: 10; border-bottom: 1px solid var(--ps-border); background: var(--ps-bg); }
  .header-inner { min-height: 5.8rem; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; }
  .hero { position: relative; isolation: isolate; overflow: clip; min-height: 43rem; display: grid; align-content: center; padding-block: clamp(4rem, 10vw, 7.5rem) 2rem; }
  .hero-copy { position: relative; z-index: 1; width: min(100%, 860px); }
  .hero-footnote { position: relative; z-index: 1; align-self: end; margin-block: 3.25rem 0; }
  .section { padding-block: var(--ps-space-5); }
  .split { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); gap: clamp(2rem, 7vw, 8rem); align-items: start; }
  .section-head { display: flex; flex-wrap: wrap; gap: 1.5rem; justify-content: space-between; align-items: end; margin-bottom: 2.4rem; }
  .section-head > h2 { margin-bottom: 0; max-width: 13ch; }
  .project-grid, .service-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
  .page-hero { padding-block: clamp(3.5rem, 8vw, 7rem) clamp(2rem, 4vw, 4rem); }
  .page-hero h1 { font-size: clamp(3.1rem, 6.5vw, 6.8rem); max-width: 15ch; }
  .narrow { max-width: 900px; }
  .site-footer { border-top: 1px solid var(--ps-border); }
  .footer-inner { padding-block: 2rem; min-height: 7rem; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0.5rem 2rem; }
  .footer-inner p { margin: 0; }
}
@layer components {
  .skip-link { position: fixed; z-index: 1000; inset: 0 auto auto 1rem; transform: translateY(-180%); padding: 0.7rem 1rem; background: var(--ps-accent); color: var(--ps-accent-contrast); font-weight: 750; border-radius: var(--ps-radius-sm); }
  .skip-link:focus { transform: translateY(0.75rem); }
  .brand { display: inline-flex; align-items: center; gap: 0.75rem; text-decoration: none; font-size: clamp(0.73rem, 1.25vw, 0.92rem); font-weight: 850; letter-spacing: 0.09em; line-height: 1.25; white-space: nowrap; }
  .brand-symbol { display: block; width: 2.8rem; height: 2.8rem; flex: none; object-fit: contain; padding: 0.15rem; background: #101820; border: 1px solid #425e67; border-radius: 0.55rem; }
  .brand-sep { color: var(--ps-accent); }
  .primary-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 0.15rem; }
  .primary-nav a { border-radius: 0.25rem; text-decoration: none; font-size: 0.91rem; font-weight: 650; padding: 0.6rem 0.7rem; border-bottom: 2px solid transparent; }
  .primary-nav a:hover, .primary-nav a[aria-current="page"] { color: var(--ps-accent); border-color: var(--ps-accent); }
  .mobile-menu-button, .mobile-popover { display: none; }
  .breadcrumbs { margin-block: 1.3rem; display: flex; align-items: center; gap: 0.75rem; font-size: 0.86rem; color: var(--ps-muted); }
  .breadcrumbs a { color: var(--ps-accent); }
  .eyebrow, .card-index, .service-number, .hero-footnote, .mobile-nav-label { font-family: var(--ps-font-mono); font-size: 0.73rem; line-height: 1.5; font-weight: 700; letter-spacing: 0.095em; text-transform: uppercase; }
  .eyebrow { color: var(--ps-accent); margin-bottom: 1.5rem; }
  .eyebrow-dot { display: inline-block; height: 0.48rem; width: 0.48rem; border-radius: 50%; background: currentColor; margin-right: 0.6rem; vertical-align: 0.1em; }
  .eyebrow-dark { color: var(--ps-paper-accent); }
  .hero h1 { margin-bottom: 1.6rem; max-width: 11.5ch; }
  .hero h1 em { font-style: normal; color: var(--ps-accent); }
  .lede { max-width: 43rem; font-size: clamp(1.08rem, 1.65vw, 1.35rem); line-height: 1.5; color: var(--ps-muted); }
  .actions { display: flex; flex-wrap: wrap; gap: 0.8rem; margin-top: 2.2rem; }
  .button { display: inline-flex; align-items: center; justify-content: center; min-height: 3rem; padding: 0.79rem 1.3rem; gap: 1.35rem; border: 1px solid transparent; border-radius: var(--ps-radius-sm); text-decoration: none; font-weight: 750; font-size: 0.93rem; line-height: 1.4; }
  .button-primary { background: var(--ps-accent); color: var(--ps-accent-contrast); }
  .button-secondary { background: var(--ps-surface); color: var(--ps-text); border-color: var(--ps-border); }
  .button-ink { background: var(--ps-paper-text); color: #FFFFFF; }
  .text-link { display: inline-flex; align-items: center; gap: 0.8rem; font-weight: 730; text-underline-offset: 0.3em; }
  .text-link:hover { text-decoration-thickness: 0.16em; }
  .hero-art { position: absolute; pointer-events: none; z-index: 0; inset: 2.5rem 0 4rem 47%; opacity: 0.65; overflow: hidden; }
  .hero-art svg { width: 100%; height: 100%; overflow: hidden; }
  .hero-art .current-line { stroke: var(--ps-current-line); fill: none; stroke-width: 1.25; }
  .hero-art .current-fill { fill: var(--ps-current-line); }
  .hero-art .current-ring { fill: none; stroke: var(--ps-current-line); stroke-width: 0.7; stroke-dasharray: 3 9; }
  .hero-art .current-glow { fill: var(--ps-current-line); opacity: 0.11; }
  .hero-art::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to right, var(--ps-bg) 1%, transparent 45%); }
  .hero-footnote { color: var(--ps-muted); font-size: 0.65rem; }
  .hero-footnote span { color: var(--ps-accent); padding-inline: 0.65rem; }
  .section-light, .section-cta { background: var(--ps-paper); color: var(--ps-paper-text); }
  .section-light .split > div:last-child { font-size: clamp(1.04rem, 1.5vw, 1.18rem); }
  .section-light .text-link, .section-cta .text-link { color: var(--ps-paper-accent); }
  .section-cta { background: #B5ECDB; }
  .section-cta h2 { max-width: 17ch; }
  .section-cta p:not(.eyebrow) { font-size: 1.12rem; }
  .section h2 { margin-bottom: 1.25rem; }
  .project-card, .service-card { padding: clamp(1.5rem, 3vw, 2.8rem); border: 1px solid var(--ps-border); border-radius: var(--ps-radius); background: var(--ps-surface); min-width: 0; }
  .project-card { display: flex; flex-direction: column; min-height: 18rem; }
  .project-card h2, .service-card h2 { font-size: clamp(1.55rem, 2.5vw, 2.3rem); margin-block: 0.5rem 1rem; }
  .project-card h3 { margin-block: 0.5rem 1rem; }
  .card-index, .service-number { color: var(--ps-accent); }
  .project-card p:not(.card-index), .service-card p { color: var(--ps-muted); }
  .project-card a { color: var(--ps-accent); font-weight: 700; margin-top: auto; }
  .project-card p { max-width: 42ch; }
  .callout { max-width: 54rem; padding: clamp(1.75rem, 5vw, 4rem); background: var(--ps-paper); color: var(--ps-paper-text); border-radius: var(--ps-radius); }
  .callout h2 { font-size: clamp(2rem, 4vw, 3.8rem); }
  .callout .text-link { color: var(--ps-paper-accent); }
  .callout p:not(.eyebrow) { font-size: clamp(1rem, 1.5vw, 1.15rem); }
  .muted { color: var(--ps-muted); }
  .footnote { margin-top: 1.65rem; font-size: 0.875rem; }
  .site-footer { color: var(--ps-muted); font-size: 0.85rem; }
  .site-footer a:hover { color: var(--ps-text); }
  .principle-strip { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1rem; padding-block: 2rem; border-top: 1px solid var(--ps-border); }
  .principle-strip div { min-width: 0; }
  .principle-strip strong { display: block; font-weight: 700; }
  .principle-strip small { color: var(--ps-muted); }
  .proof-intro { color: var(--ps-muted); max-width: 40rem; }
  .style-guide-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; margin-block: 1.5rem 3rem; }
  .style-chip { border: 1px solid var(--ps-border); border-radius: var(--ps-radius-sm); background: var(--ps-surface); padding: 1rem; }
  .style-chip strong, .style-chip span { display: block; }
  .style-chip span { font-family: var(--ps-font-mono); font-size: 0.82rem; color: var(--ps-muted); }
  .style-swatch { display: block; height: 4.5rem; border-radius: 0.3rem; margin-bottom: 1rem; border: 1px solid #7B9290; }
  .swatch-ink { background: #101820; } .swatch-mineral { background: #EAEDE8; } .swatch-current { background: #B5ECDB; }
  .style-samples { display: grid; gap: 1.5rem; margin-block: 2rem; }
  .style-samples h2 { margin: 0; } .style-samples h3 { margin: 0; }
}
@layer motion {
  @media (prefers-reduced-motion: no-preference) {
    .button, .text-link, .primary-nav a, .project-card, .mobile-popover a { transition: background-color var(--ps-motion-fast) var(--ps-ease), border-color var(--ps-motion-fast) var(--ps-ease), color var(--ps-motion-fast) var(--ps-ease); }
    .button:hover { filter: brightness(0.96); }
  }
  @media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
  }
}
@layer utilities {
  @media (max-width: 950px) {
    .header-inner { gap: 0.75rem; min-height: 5rem; }
    .brand { font-size: 0.76rem; }
    .primary-nav a { padding-inline: 0.48rem; font-size: 0.88rem; }
  }
  @media (max-width: 760px) {
    .primary-nav { display: none; }
    .mobile-menu-button { display: inline-flex; align-items: center; justify-content: center; gap: 0.65rem; color: var(--ps-text); background: var(--ps-surface); border: 1px solid var(--ps-border); border-radius: var(--ps-radius-sm); padding: 0.65rem 0.8rem; min-height: 2.85rem; cursor: pointer; }
    .menu-glyph { width: 1.1rem; display: grid; gap: 0.25rem; }
    .menu-glyph span { display: block; height: 2px; background: currentColor; border-radius: 2px; }
    .mobile-popover { color: var(--ps-text); background: var(--ps-surface); border: 1px solid var(--ps-border); border-radius: var(--ps-radius); box-shadow: 0 1.4rem 3rem #0005; padding: 1.1rem; width: min(22rem, calc(100vw - 2 * var(--ps-gutter))); }
    .mobile-popover:popover-open { position: fixed; inset: 5.2rem var(--ps-gutter) auto auto; margin: 0; display: grid; gap: 0.15rem; }
    .mobile-popover a { display: flex; justify-content: space-between; gap: 1rem; padding: 0.7rem 0.8rem; min-height: 2.8rem; border-radius: 0.4rem; text-decoration: none; font-weight: 670; }
    .mobile-popover a[aria-current="page"], .mobile-popover a:hover { background: var(--ps-elevated); }
    .mobile-nav-label { color: var(--ps-muted); margin: 0.2rem 0.8rem 0.6rem; }
    .hero { min-height: auto; padding-block: 4rem 1.5rem; }
    .hero h1 { max-width: 12ch; }
    .hero-art { inset: 12% 0 20% 12%; opacity: 0.18; }
    .hero-art::after { background: linear-gradient(to right, var(--ps-bg), transparent 88%); }
    .split, .project-grid, .service-grid, .style-guide-grid { grid-template-columns: minmax(0, 1fr); }
    .principle-strip { grid-template-columns: 1fr; gap: 0.9rem; }
    .section-head { align-items: start; }
    .section-head h2 { max-width: none; }
  }
  @supports not selector(:popover-open) {
    @media (max-width: 760px) {
      .mobile-menu-button { display: none; }
      .mobile-popover { display: flex; position: static; width: 100%; flex-wrap: wrap; border: 0; box-shadow: none; padding: 0.5rem 0; background: transparent; }
      .mobile-popover a { width: auto; }
      .mobile-nav-label { display: none; }
      .header-inner { flex-wrap: wrap; }
    }
  }
  @media (max-width: 360px) {
    .brand-label { font-size: 0.74rem; letter-spacing: 0.045em; } .brand-sep, .brand-tail { display: none; } .header-inner { flex-wrap: wrap; }
    .brand-symbol { width: 2.35rem; height: 2.35rem; }
    .hero h1 { font-size: clamp(2.9rem, 10vw, 3.15rem); }
    .actions { align-items: stretch; }
    .button { width: 100%; }
  }
  @media (min-width: 761px) {
    .mobile-popover, .mobile-menu-button { display: none !important; }
  }
}

/* v0.3: case study and portfolio — the gallery is useful without JavaScript */
@layer components {
  .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
  .portfolio-heading { max-width:15ch; }
  .portfolio-filters { display:flex; flex-wrap:wrap; gap:0.55rem; margin-bottom:1.25rem; }
  .portfolio-filters[hidden], .portfolio-status[hidden], .portfolio-card[hidden] { display:none!important; }
  .portfolio-filters button { color:var(--ps-text); border:1px solid var(--ps-border); background:var(--ps-surface); border-radius:10rem; min-height:2.85rem; padding:0.5rem 1rem; font-weight:650; cursor:pointer; }
  .portfolio-filters button[aria-pressed="true"] { color:var(--ps-accent-contrast); background:var(--ps-accent); border-color:var(--ps-accent); }
  .portfolio-status { color:var(--ps-muted); font-size:0.87rem; margin-bottom:1.4rem; }
  .portfolio-card { gap:0.3rem; }
  .portfolio-card h3 { margin-bottom:0.5rem; }
  .portfolio-card .project-outcome-label { font-size:0.75rem; font-family:var(--ps-font-mono); text-transform:uppercase; letter-spacing:0.075em; }
  .portfolio-card a { margin-top:auto; padding-top:1rem; }
  .work-card-art { position:relative; height:clamp(10rem,24vw,15rem); border-radius:0.6rem; margin-bottom:1.7rem; overflow:hidden; border:1px solid var(--ps-border); background:radial-gradient(circle at 70% 30%,#2A5660,#101E28 68%); }
  .work-card-art .art-track { position:absolute; inset:15%; border:1px solid #B5ECDB77; border-radius:50%; transform:rotate(-15deg) scaleX(1.7); }
  .work-card-art .art-node { position:absolute; width:0.75rem; aspect-ratio:1; border-radius:50%; background:#B5ECDB; box-shadow:0 0 0 0.8rem #B5ECDB17; }
  .work-card-art .first{top:28%;left:28%}.work-card-art .second{top:57%;left:68%}.work-card-art .third{top:68%;left:38%}
  .work-art--places { background:repeating-radial-gradient(ellipse at 30% 30%,#B5ECDB44 0 1px,transparent 2px 19px),#173638; }
  .work-art--publishing { background:repeating-linear-gradient(0deg,#6BC5AB33 0 1px,transparent 1px 18px),linear-gradient(120deg,#1D383B,#101820); }
  .work-art--tools { background:linear-gradient(135deg,#33596B,#172A36); }
  .case-hero { padding-bottom:var(--ps-space-5); }
  .case-meta { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; margin-block:2.5rem; padding-top:1.5rem; border-top:1px solid var(--ps-border); max-width:58rem; }
  .case-meta-label { display:block; font:700 0.75rem var(--ps-font-mono); letter-spacing:0.1em; color:var(--ps-accent); text-transform:uppercase; }
  .case-meta p { margin-block:0.4rem; color:var(--ps-muted); }
  .case-actions { display:flex; flex-wrap:wrap; gap:1.25rem; }
  .case-process { counter-reset:step; list-style:none; padding:0; margin:2rem 0 0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
  .case-process li { border-top:1px solid var(--ps-border); padding:1.25rem 0.5rem 0; }
  .case-sequence { display:block; color:var(--ps-accent); font:700 0.85rem var(--ps-font-mono); margin-bottom:1rem; }
  .case-process p { font-size:1.08rem; }
  .case-dark-section { background:var(--ps-surface); }
  .case-two-column { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(1.5rem,7vw,6rem); }
  .case-two-column li,.case-study ul li { margin-block:0.65rem; }
  .case-two-column li { color:var(--ps-muted); }
  .case-big-copy { font-size:clamp(1.2rem,2vw,1.55rem); line-height:1.55; }
}
@layer utilities { @media(max-width:760px) { .case-meta,.case-process,.case-two-column{grid-template-columns:minmax(0,1fr)} } }

/* Server-rendered contact form styles, loaded even with JavaScript disabled. */
@layer components {
  .inquiry-form { display: grid; gap: 1.15rem; max-width: 42rem; }
  .inquiry-field { display:grid; gap: 0.35rem; }
  .inquiry-field label { font-weight: 700; }
  .inquiry-field input, .inquiry-field textarea { border: 1px solid var(--ps-border); border-radius: var(--ps-radius-sm); padding: 0.75rem 0.85rem; min-height: 2.75rem; width: 100%; background: var(--ps-bg); color: var(--ps-text); font: inherit; }
  .inquiry-field textarea { resize: vertical; }
  .inquiry-field :is(input,textarea)[aria-invalid="true"] { border-color: #BF4949; }
  .inquiry-field :is(input,textarea):focus-visible { outline: 3px solid var(--ps-focus); outline-offset: 2px; }
  .form-error { color: #CE5C5C; font-size: 0.9rem; }
  .honeypot { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
}


/* v1.0 — platform-native progressive enhancements.
 * The source document, headings, controls and navigation are complete
 * before any animation or optional Custom Element is defined.
 */
@layer components {
  .hero-art ps-ambient-field, .lab-field-stage ps-ambient-field {
    position: absolute; inset: 0; display: block; overflow: hidden;
    pointer-events: none;
  }
  ps-ambient-field canvas { display: block; width: 100%; height: 100%; }
  .lab-field-stage {
    position: relative; isolation: isolate;
    min-height: clamp(16rem, 35vw, 27rem);
    overflow: hidden; border: 1px solid var(--ps-border);
    border-radius: var(--ps-radius);
    background: var(--ps-surface);
    color: var(--ps-accent);
  }
  .lab-static-field { position: absolute; inset: 0; width: 100%; height: 100%; }
  .lab-field-caption {
    position: absolute; inset: auto 1.25rem 1rem auto; z-index: 2;
    font: 700 0.7rem var(--ps-font-mono);
    letter-spacing: 0.07em; color: var(--ps-text);
    background: var(--ps-bg); padding: 0.35rem 0.65rem;
    border: 1px solid var(--ps-border);
    border-radius: var(--ps-radius-sm);
  }
  .lab-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem;
    margin-top: 1rem; }
  .lab-controls[hidden] { display: none !important; }
  .lab-controls > div { display: inline-flex; gap: 0.75rem; flex-wrap: wrap; align-items: center; }
  .lab-controls label { font-weight: 700; }
  .lab-controls input { accent-color: var(--ps-accent); min-width: 8rem; }
  .lab-controls output { font-family: var(--ps-font-mono); }
}
@layer motion {
  @media (prefers-reduced-motion: no-preference) {
    /* Browsers lacking scroll timelines keep every section in its natural place. */
    @supports (animation-timeline: view()) {
      .story-reveal {
        animation: ps-reveal-position linear both;
        animation-timeline: view();
        animation-range: entry 0% entry 100%;
      }
      @keyframes ps-reveal-position {
        from { transform: translateY(0.55rem); }
        to { transform: translateY(0); }
      }
    }
    /* Supported browsers transition documents. Unsupported browsers follow links. */
    @view-transition { navigation: auto; }
  }
  @media (prefers-reduced-motion: reduce) {
    ps-ambient-field canvas { display: none; }
    .story-reveal { animation: none !important; transform: none !important; }
    ::view-transition-old(root), ::view-transition-new(root) { animation: none !important; }
  }
}
@layer utilities {
  @media (max-width: 760px) {
    .lab-field-caption { font-size: 0.58rem; inset: auto 0.6rem 0.6rem 0.6rem; }
    .lab-controls { align-items: stretch; }
  }
}
