
:root { color-scheme: light; --ground:#f7f8fa; --surface:#fff; --ink:#20252d; --muted:#59626e; --subtle:#65707d; --line:#e4e7ec; --blue:#155bcc; --blue-hover:#104cad; --focus:#155bcc; --green:#226344; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scrollbar-color:#b6bdc7 var(--ground); }
body { margin:0; background:var(--ground); color:var(--ink); font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-size:15px; line-height:1.55; -webkit-font-smoothing:antialiased; }
::selection { background:#d9e7ff; color:#142e57; }
a { color:var(--blue); text-underline-offset:3px; }
a:hover { color:var(--blue-hover); }
:focus-visible { outline:3px solid var(--focus); outline-offset:4px; border-radius:3px; }
.page { width:min(100% - 64px,960px); margin-inline:auto; }
.site-header { display:flex; align-items:center; justify-content:space-between; min-height:100px; border-bottom:1px solid var(--line); gap:20px; }
.wordmark { color:var(--ink); font-size:20px; font-weight:720; letter-spacing:-.035em; text-decoration:none; }
.wordmark span { color:var(--subtle); font-weight:450; }
.wordmark:hover { color:var(--ink); }
.owner { color:var(--muted); font-size:14px; }
.intro { padding:52px 0 28px; }
h1 { margin:0 0 5px; font-size:34px; line-height:1.2; font-weight:650; letter-spacing:-.03em; }
.intro p { margin:0; color:var(--muted); font-size:16px; }
.projects { list-style:none; padding:0; margin:0; background:var(--surface); border:1px solid var(--line); border-radius:14px; overflow:hidden; }
.project { padding:29px 28px; }
.project + .project { border-top:1px solid var(--line); }
.project-main { display:grid; grid-template-columns:56px minmax(0,1fr) 188px; column-gap:20px; align-items:start; }
.app-icon { display:block; border-radius:13px; width:56px; height:56px; }
h2 { font-size:19px; letter-spacing:-.025em; line-height:1.25; margin:1px 0 6px; font-weight:650; }
.description { color:var(--muted); margin:0; max-width:46ch; line-height:1.5; }
.platform { color:var(--subtle); font-size:12px; margin:9px 0 0; font-variant-numeric:tabular-nums; }
.project-action { display:flex; align-items:flex-end; flex-direction:column; gap:9px; }
.availability { margin:0; color:var(--muted); font-size:12px; line-height:1.5; }
.available { color:var(--green); }
.button { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:42px; padding:8px 14px; border:1px solid #d4dae3; border-radius:8px; color:var(--ink); font-size:13px; font-weight:600; text-decoration:none; white-space:nowrap; transition:background-color 140ms ease-out,border-color 140ms ease-out; }
.button svg { width:17px; height:17px; flex-shrink:0; }
.button:hover { background:#f0f3f8; border-color:#b7c1cf; color:var(--ink); }
.button.primary { color:#fff; background:var(--blue); border-color:var(--blue); }
.button.primary:hover { background:var(--blue-hover); border-color:var(--blue-hover); }
.unavailable { display:flex; align-items:center; min-height:42px; font-size:13px; color:var(--subtle); }
.install { margin:15px 0 0 76px; font-size:12px; }
summary { width:fit-content; padding:5px 0; color:var(--muted); cursor:pointer; }
summary:hover { color:var(--ink); }
summary::marker { color:var(--subtle); font-size:.8em; }
.install-content { max-width:65ch; font-size:13px; padding:4px 0 0; color:var(--muted); }
.install-content p { margin:0 0 10px; }
.install-content strong { font-weight:600; color:var(--ink); }
footer { display:flex; justify-content:space-between; gap:12px; padding:24px 0 40px; color:var(--subtle); font-size:12px; }
.skip-link { position:fixed; left:16px; top:-80px; padding:10px 16px; border-radius:6px; background:var(--surface); z-index:2; }
.skip-link:focus { top:16px; }
@media (max-width:700px) {
  .page { width:min(100% - 40px,560px); }
  .site-header { min-height:80px; }
  .intro { padding:34px 0 24px; }
  h1 { font-size:30px; }
  .project { padding:24px 20px; }
  .project-main { grid-template-columns:48px minmax(0,1fr); column-gap:16px; row-gap:18px; }
  .app-icon { width:48px; height:48px; border-radius:11px; }
  .project-action { grid-column:2; align-items:flex-start; gap:8px; }
  .install { margin-left:64px; }
  .button { min-height:44px; }
  .unavailable { min-height:0; }
  footer { flex-wrap:wrap; }
}
@media (max-width:360px) {
  .page { width:calc(100% - 28px); }
  .project { padding:22px 16px; }
  .owner { font-size:12px; }
  .project-main { column-gap:12px; }
  .install { margin-left:60px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .button { transition:none; } }
