/* AOSOFT studio. Layout: a single column read like a terminal listing — wordmark with a block cursor, then apps. */
:root {
  --bg: #f6f7f8; --paper: #ffffff; --ink: #121417; --muted: #5b6470; --line: #dde1e6; --accent: #0e6f6e; --pill: #e3f1f0;
  --font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --mono: ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
}
@media (prefers-color-scheme: dark) {
  :root { --bg: #101215; --paper: #181b20; --ink: #ebeef2; --muted: #9aa3ae; --line: #2a2f37; --accent: #45bdb9; --pill: #13302f; color-scheme: dark; }
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--bg); color: var(--ink); font: 17px/1.55 var(--font); }
a { color: var(--accent); }
.wrap { max-width: 860px; margin: 0 auto; padding-left: max(20px, env(safe-area-inset-left)); padding-right: max(20px, env(safe-area-inset-right)); }
.top { display: flex; justify-content: space-between; align-items: center; padding-top: max(28px, env(safe-area-inset-top)); padding-bottom: 12px; }
.wordmark { font: 800 clamp(34px, 7vw, 56px)/1 var(--mono); letter-spacing: .06em; color: var(--ink); text-decoration: none; display: inline-flex; align-items: center; }
.cursor { width: .55em; height: .9em; margin-left: .12em; background: var(--accent); animation: blink 1.1s steps(1) infinite; }
@keyframes blink { 50% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .cursor { animation: none; } }
.lang { color: var(--muted); font-size: 15px; }
.intro { padding: 18px 0 8px; }
.tag { font: 600 14px/1.4 var(--mono); text-transform: uppercase; letter-spacing: .12em; color: var(--accent); margin: 0 0 10px; }
.lead { font-size: clamp(19px, 2.6vw, 24px); line-height: 1.45; margin: 0; max-width: 34em; text-wrap: pretty; }
h2 { font: 700 14px/1.4 var(--mono); text-transform: uppercase; letter-spacing: .12em; color: var(--muted); margin: 52px 0 16px; }
.app { display: flex; gap: 20px; align-items: flex-start; background: var(--paper); border: 1px solid var(--line); border-radius: 16px; padding: 20px; color: inherit; text-decoration: none; }
.app:hover { border-color: var(--accent); }
.app:focus-visible, a:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
.app img { border-radius: 20px; flex: 0 0 auto; }
.app-text { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.app-name { font-size: 22px; font-weight: 700; }
.app-desc { color: var(--muted); }
.app-meta { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; margin-top: 4px; }
.pill { font-size: 13px; font-weight: 600; background: var(--pill); color: var(--accent); padding: 5px 10px; border-radius: 999px; }
.more { color: var(--accent); font-weight: 600; font-size: 15px; }
.rules { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 0; border-top: 1px solid var(--line); }
.rules li { display: flex; flex-direction: column; gap: 2px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.rules strong { font-family: var(--mono); font-size: 16px; }
.rules strong::before { content: "> "; color: var(--accent); }
.rules span { color: var(--muted); font-size: 16px; }
.contact p { font-size: 18px; margin: 0; }
.footer { display: flex; flex-wrap: wrap; gap: 8px 22px; padding-top: 56px; padding-bottom: max(32px, env(safe-area-inset-bottom)); color: var(--muted); font-size: 15px; }
.footer a { color: var(--muted); }
@media (max-width: 520px) { .app { flex-direction: column; } .app img { width: 72px; height: 72px; } }
