:root{--ink:#18202b;--muted:#657083;--line:#dfe4ea;--paper:#fff;--soft:#f5f7f8;--brand:#176b87;--brand-dark:#0b4054;--accent:#e2f3f2;--radius:22px;--shadow:0 16px 44px rgba(16,43,54,.09);color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic UI",Meiryo,sans-serif;line-height:1.75}a{color:inherit}.shell{width:min(1120px,calc(100% - 40px));margin-inline:auto}.skip-link{position:absolute;left:16px;top:-60px;background:var(--ink);color:#fff;padding:10px 14px;z-index:20}.skip-link:focus{top:10px}.site-header{position:sticky;top:0;z-index:10;background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.header-inner{height:68px;display:flex;align-items:center;justify-content:space-between}.brand{font-weight:800;letter-spacing:-.03em;text-decoration:none;font-size:1.08rem}.brand span{color:var(--brand)}.site-header nav,.site-footer nav{display:flex;gap:28px}.site-header nav a,.site-footer nav a{text-decoration:none;font-size:.92rem}.site-header nav a:hover{text-decoration:underline;text-underline-offset:5px}.menu-button{display:none;border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 13px}.hero{padding:84px 0 72px;background:linear-gradient(140deg,#fff 15%,#eef8f7)}.hero-grid{display:grid;grid-template-columns:1.2fr .8fr;align-items:center;gap:70px}.eyebrow{color:var(--brand);font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;margin:0 0 12px}.hero h1,.page-head h1,.app-hero h1{font-size:clamp(2.7rem,7vw,5.6rem);line-height:1.08;letter-spacing:-.055em;margin:0 0 24px}.lead{font-size:clamp(1rem,2vw,1.25rem);color:var(--muted);max-width:680px}.button,.store-button{display:inline-flex;background:var(--brand-dark);color:#fff;padding:13px 22px;border-radius:999px;text-decoration:none;font-weight:750;margin-top:18px}.button:hover,.store-button:hover{background:var(--brand)}.hero-panel{height:380px;border-radius:40px;background:var(--brand-dark);box-shadow:var(--shadow);padding:36px;display:grid;gap:18px;transform:rotate(2deg)}.hero-panel span{display:block;border-radius:22px;background:linear-gradient(135deg,#77c8c2,#e2f3f2)}.hero-panel span:nth-child(2){margin-left:24%;background:#fff}.hero-panel span:nth-child(3){margin-right:35%;background:#eabf7b}.section{padding:80px 0}.soft{background:var(--soft)}.section h2{font-size:clamp(1.8rem,4vw,2.8rem);line-height:1.25;letter-spacing:-.035em;margin:0 0 28px}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:30px}.section-heading h2{margin:0}.text-link{color:var(--brand-dark);font-weight:750;text-underline-offset:4px}.app-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.app-card{border:1px solid var(--line);border-radius:var(--radius);background:#fff;overflow:hidden}.app-card>a{display:flex;gap:22px;padding:26px;text-decoration:none}.app-card img,.app-icon{border-radius:22%;box-shadow:0 8px 22px rgba(15,38,48,.12)}.app-card h2{font-size:1.4rem;margin:0 0 4px}.app-card p{margin:0 0 8px;color:var(--muted)}.category-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.category-card{display:block;min-height:210px;padding:26px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;text-decoration:none}.category-card:hover,.app-card:hover{border-color:#9abec8;box-shadow:var(--shadow)}.category-card h2,.category-card h3{font-size:1.25rem;line-height:1.4;margin:0 0 12px}.category-card p{color:var(--muted)}.category-card span{font-weight:750;color:var(--brand)}.empty-state{grid-column:1/-1;border:1px dashed #b8c6cc;border-radius:var(--radius);padding:48px;background:var(--soft)}.empty-state h2{font-size:1.6rem;margin:0 0 8px}.empty-state p:last-child{color:var(--muted);margin-bottom:0}.page-head{padding:82px 0 42px}.page-head h1{font-size:clamp(2.5rem,7vw,4.6rem)}.page-head>p:last-child{color:var(--muted)}.app-hero{padding:72px 0;background:linear-gradient(145deg,#fff,#eef8f7)}.app-hero-grid{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:40px}.screenshots{display:flex;gap:22px;overflow-x:auto;padding:8px 4px 24px;scroll-snap-type:x mandatory}.screenshots figure{margin:0;min-width:min(76vw,320px);scroll-snap-align:start}.screenshots img{width:100%;height:auto;border-radius:28px;border:1px solid var(--line)}.screenshots figcaption{font-size:.9rem;color:var(--muted);margin-top:8px}.prose{max-width:820px}.feature-list{display:grid;gap:16px;padding-left:22px}.feature-list h3{margin:0}.feature-list p{margin:4px 0;color:var(--muted)}.two-column{display:grid;grid-template-columns:1fr 1fr;gap:70px}.two-column>div{padding:30px;border:1px solid var(--line);border-radius:var(--radius)}details{border-top:1px solid var(--line);padding:16px 0}summary{font-weight:700;cursor:pointer}.cta{text-align:center;background:var(--brand-dark);color:#fff;padding:72px 0}.cta h2{font-size:clamp(2rem,5vw,3.5rem);margin:0}.store-button.light{background:#fff;color:var(--brand-dark)}.site-footer{padding:56px 0 24px;background:#101c23;color:#dce5e8}.footer-grid{display:flex;justify-content:space-between;gap:40px}.site-footer nav{flex-wrap:wrap}.site-footer nav a{color:#dce5e8}.copyright{text-align:center;color:#899aa2;font-size:.82rem;margin-top:44px}@media(max-width:800px){.site-header nav{display:none;position:absolute;top:60px;left:20px;right:20px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:var(--shadow);flex-direction:column;gap:10px}.site-header nav.is-open{display:flex}.menu-button{display:block}.hero{padding:56px 0}.hero-grid{grid-template-columns:1fr;gap:42px}.hero-panel{height:220px}.app-grid,.two-column{grid-template-columns:1fr}.category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.app-hero-grid{grid-template-columns:1fr}.app-icon{width:112px;height:112px}.footer-grid{flex-direction:column}.site-footer nav{flex-direction:column;gap:12px}}@media(max-width:480px){.shell{width:min(100% - 28px,1120px)}.hero h1{font-size:2.75rem}.section{padding:58px 0}.category-grid{grid-template-columns:1fr}.category-card{min-height:0}.app-card>a{padding:20px;gap:16px}.app-card img{width:72px;height:72px}.section-heading{align-items:start;gap:16px;flex-direction:column}.two-column{gap:18px}}

.analytics-consent {
  align-items: center;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 20px;
  bottom: 18px;
  box-shadow: 0 18px 54px rgb(16 43 54 / 20%);
  display: flex;
  gap: 24px;
  justify-content: space-between;
  left: 50%;
  max-width: 920px;
  padding: 18px 20px;
  position: fixed;
  transform: translateX(-50%);
  width: calc(100% - 36px);
  z-index: 100;
}

.analytics-consent[hidden] {
  display: none;
}

.analytics-consent-copy strong {
  display: block;
  font-size: 1rem;
  margin-bottom: 2px;
}

.analytics-consent-copy p {
  color: var(--muted);
  font-size: .88rem;
  line-height: 1.55;
  margin: 0;
}

.analytics-consent-copy a {
  color: var(--brand-dark);
  font-weight: 700;
  text-underline-offset: 3px;
}

.analytics-consent-actions {
  display: flex;
  flex: none;
  gap: 10px;
}

.analytics-consent-actions button {
  background: #fff;
  border: 1px solid #b9c6cc;
  border-radius: 999px;
  color: var(--ink);
  cursor: pointer;
  font: inherit;
  font-size: .86rem;
  font-weight: 700;
  padding: 10px 16px;
}

.analytics-consent-actions button.is-primary {
  background: var(--brand-dark);
  border-color: var(--brand-dark);
  color: #fff;
}

.analytics-consent-actions button:focus-visible,
.footer-analytics-settings:focus-visible {
  outline: 3px solid #77c8c2;
  outline-offset: 3px;
}

.footer-analytics-settings {
  background: none;
  border: 0;
  color: #dce5e8;
  cursor: pointer;
  font: inherit;
  font-size: .92rem;
  padding: 0;
  text-align: left;
}

.footer-analytics-settings:hover {
  text-decoration: underline;
  text-underline-offset: 5px;
}

.privacy-content h2 {
  font-size: 1.7rem;
  margin-top: 2.5rem;
}

.postcode-privacy-title {
  word-break: keep-all;
}

.privacy-content p {
  color: var(--muted);
}

.privacy-updated {
  border-top: 1px solid var(--line);
  font-size: .9rem;
  margin-top: 3rem;
  padding-top: 1.25rem;
}

@media (max-width: 720px) {
  .analytics-consent {
    align-items: stretch;
    bottom: 10px;
    flex-direction: column;
    gap: 14px;
    padding: 16px;
    width: calc(100% - 20px);
  }

  .analytics-consent-actions {
    justify-content: flex-end;
  }
}

@media (max-width: 420px) {
  .analytics-consent-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
}

.release-note {
  background: #fff8e8;
  border: 1px solid #efd797;
  border-radius: 16px;
  color: #584519;
  margin-top: 20px;
  max-width: 700px;
  padding: 15px 18px;
}

.release-note strong,
.release-note p {
  display: block;
  margin: 0;
}

.release-note p {
  font-size: .9rem;
  line-height: 1.6;
  margin-top: 3px;
}

.furima-subnav {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  padding-block: 22px;
}

.furima-hero h1 {
  font-size: clamp(2.5rem, 6vw, 3.75rem);
}

.furima-subnav a {
  border: 1px solid var(--line);
  border-radius: 999px;
  font-weight: 700;
  padding: 8px 16px;
  text-decoration: none;
}

.furima-feature-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  list-style: none;
  padding: 0;
}

.furima-feature-list li {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 22px;
}

.observation-ipad-grid {
  display: grid;
  gap: 22px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.observation-ipad-grid figure {
  margin: 0;
  min-width: 0;
}

.observation-ipad-grid img {
  border: 1px solid var(--line);
  border-radius: 22px;
  display: block;
  height: auto;
  width: 100%;
}

.observation-ipad-grid figcaption {
  color: var(--muted);
  font-size: .9rem;
  margin-top: 8px;
}

.article aside .release-note {
  border-radius: 14px;
  margin-top: 18px;
  padding: 13px 14px;
}

.support-grid {
  align-items: start;
  display: grid;
  gap: 40px;
  grid-template-columns: minmax(0, 820px);
  justify-content: center;
}

.support-form {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  display: grid;
  gap: 10px;
  padding: 28px;
}

.support-form h2 {
  font-size: 1.7rem;
  margin-bottom: 12px;
}

.support-form label {
  font-weight: 700;
  margin-top: 8px;
}

.support-form input,
.support-form select,
.support-form textarea {
  background: #fff;
  border: 1px solid #aebac1;
  border-radius: 12px;
  color: var(--ink);
  font: inherit;
  padding: 12px 14px;
  width: 100%;
}

.support-form textarea {
  resize: vertical;
}

.support-form input:focus,
.support-form select:focus,
.support-form textarea:focus {
  border-color: var(--brand);
  outline: 3px solid #d6efed;
}

.support-form .button {
  border: 0;
  cursor: pointer;
  justify-content: center;
}

.form-note {
  color: var(--muted);
  font-size: .84rem;
  line-height: 1.6;
}

.contact-field-row {
  display: grid;
  gap: 14px;
  grid-template-columns: 1fr;
}

.contact-field-row > div {
  display: grid;
  gap: 6px;
}

.contact-honeypot {
  left: -10000px;
  position: absolute;
}

.contact-agreement {
  align-items: start;
  display: flex;
  gap: 10px;
}

.contact-agreement input {
  margin-top: .45em;
  width: auto;
}

.contact-setup-notice,
.contact-result-error {
  background: #fff2da;
  border: 1px solid #dfad55;
  border-radius: 12px;
  padding: 12px 14px;
}

.support-form .button:disabled {
  cursor: not-allowed;
  opacity: .55;
}

.contact-result {
  min-height: 60vh;
}

.contact-result > div {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  margin-inline: auto;
  max-width: 680px;
  padding: 36px;
}

.contact-result-success {
  background: #effaf7;
}

.furima-privacy li + li {
  margin-top: 8px;
}

@media (max-width: 800px) {
  .furima-feature-list {
    grid-template-columns: 1fr;
  }

  .support-grid {
    gap: 34px;
  }
}

@media (max-width: 640px) {
  .observation-ipad-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 480px) {
  .release-note {
    padding: 13px 14px;
  }

  .support-form {
    padding: 20px;
  }
}
