:root {
  color-scheme: light dark;
  --paper: #faf9f6;
  --ink: #222b2d;
  --muted: #59666a;
  --link: #17665e;
  --line: #cdd4d1;
  --field: #ffffff;
  --danger: #b3261e;
  --on-link: #ffffff;
}
@media (prefers-color-scheme: dark) {
  :root {
    --paper: #10191d;
    --ink: #e8eeeb;
    --muted: #a9b9b9;
    --link: #8ed8c6;
    --line: #344549;
    --field: #172428;
    --danger: #ff9a8f;
    --on-link: #10191d;
  }
}
[hidden] { display: none !important; }
* { box-sizing: border-box; }
html { background: var(--paper); color: var(--ink); font: 100%/1.8 system-ui, sans-serif; }
body { margin: 0; }
main { max-width: 52rem; margin: auto; padding: 2rem max(1.25rem, env(safe-area-inset-right)) 4rem max(1.25rem, env(safe-area-inset-left)); overflow-wrap: anywhere; }
.app-name { margin: 0; font-size: .85rem; font-weight: 700; letter-spacing: .12em; }
.language { margin: .25rem 0 1.5rem; }
h1 { font-size: clamp(1.75rem, 6vw, 2.4rem); line-height: 1.3; margin: 0 0 1.5rem; }
h2 { font-size: 1.2rem; line-height: 1.5; margin: 0 0 .75rem; }
section { margin: 2rem 0; }
p, ul { margin: .75rem 0; }
ul { padding-left: 1.5rem; }
li + li { margin-top: .5rem; }
a { color: var(--link); text-underline-offset: .2em; }
a:focus-visible, summary:focus-visible { outline: 3px solid var(--link); outline-offset: 4px; }
.updated, .muted { color: var(--muted); }
details { border-block: 1px solid var(--line); padding: .75rem 0; }
summary { cursor: pointer; font-weight: 600; }
pre { white-space: pre-wrap; overflow-wrap: anywhere; font-size: .85rem; line-height: 1.6; }
.faq h3 { font-size: 1.05rem; line-height: 1.5; margin: 2rem 0 .5rem; }
.faq [id] { scroll-margin-top: 1rem; }
.faq-nav { display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; list-style: none; padding: 0; }
.faq-nav li + li { margin-top: 0; }
.faq details + details { border-top: 0; }
.faq details p, .faq details ul, .faq details ol { margin: .5rem 0; }
.faq ol { padding-left: 1.5rem; }
.button-link, .contact-submit { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: .7rem 1.75rem; border: 0; border-radius: 999px; background: var(--link); color: var(--on-link); font: inherit; font-weight: 700; text-decoration: none; cursor: pointer; }
.button-link:focus-visible, .contact-submit:focus-visible { outline: 3px solid var(--link); outline-offset: 3px; }
.notice { margin: 1.5rem 0; padding: .75rem 1rem; border-left: 4px solid var(--link); background: var(--field); }
.notice h2 { margin-top: .25rem; }
.contact-form { margin: 2rem 0; }
.contact-form .field { margin: 0 0 1.75rem; }
.contact-form fieldset { min-width: 0; margin-inline: 0; padding: 0; border: 0; }
.contact-form label, .contact-form legend { display: block; margin-bottom: .35rem; padding: 0; font-weight: 600; }
.contact-form input:not([type="checkbox"]):not([type="file"]), .contact-form select, .contact-form textarea { width: 100%; padding: .65rem .75rem; border: 1px solid var(--line); border-radius: 8px; background: var(--field); color: var(--ink); font: inherit; }
.contact-form textarea { min-height: 10rem; resize: vertical; }
.contact-form input[type="file"] { max-width: 100%; font: inherit; }
.contact-form :is(input, select, textarea):focus-visible { outline: 3px solid var(--link); outline-offset: 2px; }
.contact-form [aria-invalid="true"] { border-color: var(--danger); }
.contact-form .hint { margin: .4rem 0 0; color: var(--muted); font-size: .9rem; line-height: 1.6; }
.contact-device dl { display: grid; grid-template-columns: max-content 1fr; gap: .25rem 1rem; margin: .5rem 0 0; }
.contact-device dt { color: var(--muted); }
.contact-device dd { margin: 0; }
.contact-consent label { display: flex; align-items: flex-start; gap: .6rem; font-weight: 500; }
.contact-consent input { flex: none; width: 1.25rem; height: 1.25rem; margin: .3rem 0 0; accent-color: var(--link); }
.contact-images { display: flex; flex-wrap: wrap; gap: .75rem; margin: .75rem 0 0; padding: 0; list-style: none; }
.contact-images li { display: grid; gap: .25rem; margin: 0; }
.contact-images img { width: 96px; height: 96px; object-fit: cover; border: 1px solid var(--line); border-radius: 8px; }
.contact-images button { min-height: 36px; border: 1px solid var(--line); border-radius: 999px; background: transparent; color: var(--ink); font: inherit; font-size: .85rem; cursor: pointer; }
.contact-error, .contact-images-error { color: var(--danger); font-weight: 600; white-space: pre-line; }
.contact-submit:disabled { opacity: .6; cursor: progress; }
.contact-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.contact-done { padding: 1.25rem; border: 1px solid var(--line); border-radius: 12px; }
.contact-done:focus { outline: none; }
@media print { :root { --paper: white; --ink: black; --muted: #333; --link: black; } main { max-width: none; padding: 0; } .language { display: none; } }
