:root {
  color-scheme: light;
  --ink: #183a2d;
  --body: #3c5348;
  --green: #21684b;
  --canvas: #f7f8f0;
  --white: #fffffb;
  --line: #dae3d5;
  --lime: #ddecab;
  --space: clamp(1.1rem, 3vw, 2.5rem);
  font-family: "Segoe UI", system-ui, -apple-system, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--canvas); line-height: 1.5; }
a { color: inherit; }
img { display: block; max-width: 100%; }
svg { display: inline-block; width: 1.2em; height: 1.2em; flex: 0 0 auto; }
button, a { -webkit-tap-highlight-color: transparent; }
a:focus-visible { outline: 3px solid #24785c; outline-offset: 4px; }
.wrap { width: min(100% - 2 * var(--space), 1160px); margin-inline: auto; }
.skip { position: absolute; left: 1rem; top: -5rem; background: var(--white); border: 2px solid var(--green); padding: .5rem .9rem; z-index: 10; }
.skip:focus { top: 1rem; }
.site-header { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 1.1rem; border-bottom: 1px solid var(--line); }
.brand { display: inline-flex; align-items: center; gap: .58rem; text-decoration: none; font-size: 1.48rem; font-weight: 800; letter-spacing: -.045em; white-space: nowrap; }
.brand img { border-radius: .72rem; object-fit: contain; }
.site-header nav, .site-footer nav { display: flex; align-items: center; flex-wrap: wrap; gap: clamp(.8rem, 2.6vw, 1.9rem); }
.site-header nav a, .site-footer nav a { font-size: .9rem; font-weight: 650; text-decoration: none; }
.site-header nav a:hover, .site-footer nav a:hover { text-decoration: underline; text-underline-offset: .26em; }
.site-header .lang { padding: .46rem .78rem; border: 1px solid #a9c2ac; border-radius: 999px; }
.hero { min-height: 585px; display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); align-items: center; gap: clamp(1rem, 3.3vw, 3.15rem); padding-block: clamp(2.5rem, 5vw, 4.4rem); }
.hero-copy { padding-block: .5rem; }
.eyebrow { color: #275641; display: flex; align-items: center; gap: .55rem; text-transform: uppercase; letter-spacing: .12em; font-size: .77rem; font-weight: 760; margin: 0 0 .9rem; }
.eyebrow > span, .status > span { width: .48rem; height: .48rem; border-radius: 50%; background: #3c8957; flex: none; }
h1, h2, h3, p { margin-top: 0; }
.hero h1 { margin-bottom: 1.3rem; font-size: clamp(2.95rem, 5.65vw, 5.25rem); letter-spacing: -.083em; line-height: 1.01; font-weight: 780; }
.hero h1 em { color: #277255; font: italic 500 1.05em/.92 Georgia, serif; letter-spacing: -.085em; }
.intro { color: var(--body); max-width: 37ch; font-size: clamp(1.03rem, 1.8vw, 1.24rem); margin-bottom: 1.65rem; line-height: 1.58; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .8rem 1.1rem; align-items: center; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: .7rem; min-height: 46px; padding: .72rem 1.05rem; border-radius: .8rem; text-decoration: none; font-weight: 740; font-size: .92rem; }
.button svg { width: 1.05rem; height: 1.05rem; }
.primary { color: #fff; background: #1e6447; box-shadow: 0 9px 18px #17442d20; }
.primary:hover { background: #154b35; }
.status { display: inline-flex; gap: .45rem; align-items: center; color: #425744; font-size: .85rem; font-weight: 650; }
.status > span { background: #789c59; }
.hero-art { position: relative; isolation: isolate; overflow: hidden; display: grid; align-content: center; gap: 1.25rem; min-height: clamp(360px, 42vw, 515px); padding: clamp(1rem, 2.3vw, 1.9rem); border: 1px solid #c6d8c3; border-radius: 1.8rem; background: #e3edcf; }
.scene-map { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .55; z-index: -1; }
.art-label { justify-self: center; margin: 0; padding: .4rem .75rem; border: 1px solid #d3e0d0; border-radius: 999px; color: #315345; background: #fffff5; font-size: .73rem; font-weight: 750; text-align: center; }
.app-showcase { display: grid; grid-template-columns: minmax(0, 1.07fr) repeat(2, minmax(0, 1fr)); align-items: center; gap: clamp(.45rem, 1.25vw, .95rem); }
.app-figure { display: grid; justify-items: center; gap: .55rem; margin: 0; }
.app-figure figcaption { padding: .23rem .47rem; border: 1px solid #d3e0d0; border-radius: 999px; color: #2e5142; background: #fffff5; font-size: clamp(.63rem, 1.25vw, .82rem); font-weight: 750; text-align: center; }
.app-showcase-hint { justify-self: center; margin: 0; color: #263e32; font-size: .72rem; font-weight: 650; text-align: center; }
.phone { position: relative; display: block; width: 100%; max-width: 193px; padding: clamp(3px, .4vw, 5px); border: 1px solid #50675b; border-radius: clamp(.72rem, 1.8vw, 1.44rem); background: #24352d; box-shadow: 0 12px 24px #1b473544, inset 0 0 0 1px #6e8174; }
.app-figure-home .phone { max-width: 215px; }
.phone::before, .phone::after { position: absolute; width: 2px; background: #45594e; border-radius: 2px; content: ""; }
.phone::before { top: 21%; left: -2px; height: 12%; }
.phone::after { top: 23%; right: -2px; height: 13%; }
.phone-screen { position: relative; display: block; overflow: hidden; padding-block: clamp(.52rem, 1.2vw, .94rem) .27rem; border-radius: clamp(.51rem, 1.42vw, 1.14rem); background: #fffefa; }
.phone-screen::before, .phone-screen::after { position: absolute; left: 50%; border-radius: 999px; background: #202c26; transform: translateX(-50%); content: ""; }
.phone-screen::before { top: .16rem; width: 31%; height: clamp(.2rem, .55vw, .43rem); }
.phone-screen::after { bottom: .1rem; width: 29%; height: 2px; }
.phone-screen img { width: 100%; height: auto; aspect-ratio: 430 / 932; object-fit: contain; object-position: top; }
.type-strip { display: grid; grid-template-columns: repeat(4,1fr); border: 1px solid var(--line); border-radius: 1.08rem; overflow: hidden; background: #f1f5e9; }
.type-strip > div { display: flex; align-items: center; justify-content: center; gap: .55rem; padding: .8rem .5rem; min-height: 63px; text-align: center; font-size: .88rem; font-weight: 700; }
.type-strip > div + div { border-left: 1px solid var(--line); }
.type-strip svg { color: #327458; }
.steps { padding-block: clamp(3.2rem, 7vw, 5.7rem); scroll-margin-top: 1rem; }
.steps h2, .contact-panel h2 { font-size: clamp(1.85rem, 4vw, 3rem); letter-spacing: -.056em; line-height: 1.12; }
.step-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: clamp(.8rem, 2vw, 1.25rem); }
.step-grid article { border: 1px solid var(--line); background: var(--white); padding: clamp(1rem, 2vw, 1.4rem); border-radius: .95rem; }
.step-number { display: inline-grid; place-items: center; min-width: 2.2rem; min-height: 2rem; margin-bottom: .85rem; padding: .25rem; border-radius: .55rem; color: #275641; background: #e8efda; font-size: .76rem; font-weight: 780; }
.step-grid h3 { margin-bottom: .34rem; font-size: 1.08rem; }
.step-grid p, .contact-panel p, .site-footer p { margin-bottom: 0; color: var(--body); font-size: .93rem; }
.contact-panel { display: flex; gap: 1.35rem; align-items: center; justify-content: space-between; margin-bottom: clamp(3rem, 6vw, 5rem); padding: clamp(1.3rem, 4vw, 2.6rem); color: #fffefa; background: #1c4f3c; border-radius: 1.25rem; }
.contact-panel h2 { margin-bottom: .4rem; font-size: clamp(1.5rem, 3.5vw, 2.35rem); }
.contact-panel p { color: #dfebdf; }
.secondary { background: var(--lime); color: #1e4a36; white-space: nowrap; }
.secondary:hover { background: #eef4c7; }
.site-footer { border-top: 1px solid var(--line); background: #f0f4e9; }
.foot-inner { display: flex; justify-content: space-between; gap: 1.1rem; flex-wrap: wrap; padding-block: 1.45rem; }
.foot-inner .brand { font-size: 1.28rem; }
.foot-inner .brand img { width: 31px; height: 31px; }
.foot-inner p { margin-top: .42rem; }
.legal { padding-block: clamp(2.4rem, 6vw, 4.6rem); }
.legal-heading { padding-bottom: 1.45rem; border-bottom: 1px solid var(--line); }
.legal-heading h1 { margin-bottom: .75rem; font-size: clamp(2.25rem, 6vw, 4.3rem); letter-spacing: -.066em; line-height: 1.05; }
.legal-intro { max-width: 68ch; font-size: 1.1rem; color: var(--body); }
.updated { margin-bottom: 0; color: #4c6759; font-size: .86rem; }
.legal-layout { display: grid; grid-template-columns: minmax(145px, 208px) minmax(0, 730px); gap: 1.65rem 3rem; padding-top: 1.7rem; }
.policy-nav { display: flex; flex-direction: column; align-items: flex-start; gap: .3rem; }
.policy-nav a { padding: .42rem .65rem; border-radius: .5rem; font-size: .9rem; font-weight: 650; }
.policy-nav a[aria-current] { background: #e2edda; text-decoration: none; }
.legal-content section + section { margin-top: 1.75rem; }
.legal-content h2 { margin-bottom: .5rem; font-size: 1.24rem; letter-spacing: -.02em; }
.legal-content p { margin-bottom: .65rem; color: var(--body); overflow-wrap: anywhere; }
.legal-content a, .legal-intro a { color: #19593e; text-underline-offset: .18em; }
@media (max-width: 760px) {
  .hero { grid-template-columns: 1fr; min-height: 0; gap: 1.7rem; padding-block: 2.35rem 1.65rem; }
  .hero-copy { padding-block: 0; }
  .hero h1 { font-size: clamp(2.72rem, 9.5vw, 4.45rem); }
  .hero-art { min-height: 310px; }
  .type-strip { grid-template-columns: repeat(2, 1fr); }
  .type-strip > div:nth-child(3) { border-left: 0; }
  .type-strip > div:nth-child(n+3) { border-top: 1px solid var(--line); }
  .step-grid { grid-template-columns: 1fr; }
  .legal-layout { grid-template-columns: 1fr; }
  .policy-nav { flex-direction: row; flex-wrap: wrap; }
}
@media (max-width: 430px) {
  .site-header { min-height: 68px; }
  .site-header nav { gap: .6rem; }
  .site-header nav a { font-size: .8rem; }
  .site-header nav a:nth-child(2) { display: none; }
  .brand { gap: .28rem; font-size: 1.32rem; }
  .brand img { width: 33px; height: 33px; }
  .hero-art { min-height: 0; gap: .85rem; padding: .9rem .65rem 1rem; border-radius: 1.1rem; }
  .app-showcase { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem .65rem; }
  .app-figure-home { grid-column: 1 / -1; width: min(100%, 240px); justify-self: center; }
  .app-figure-home .phone { max-width: 240px; }
  .app-figure { gap: .4rem; }
  .app-figure figcaption { padding-inline: .28rem; }
  .contact-panel { align-items: flex-start; flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
