/* ===== home.css: Windows-10 style live tiles (start page only) ===== */
:root { --cols: 4; --u: calc((min(100vw, 520px) - 32px - 3 * var(--gap)) / 4); }
@media (min-width: 600px) { :root { --cols: 6; --u: 72px; } }

.intro { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; margin-bottom: 32px; }
.intro h1 { margin: 0; font-size: clamp(26px, 6vw, 34px); line-height: 1.25; font-weight: 700; text-wrap: balance; }
.board { display: flex; flex-wrap: wrap; gap: 36px 32px; }
.group { min-width: 0; }
.group-title { margin: 0 0 12px; font-size: 15px; font-weight: 500; color: var(--fg2); }
.grid {
  display: grid;
  grid-template-columns: repeat(var(--cols), var(--u));
  grid-auto-rows: var(--u);
  grid-auto-flow: dense;
  gap: var(--gap);
}
.empty { margin: 0; color: var(--fg2); }

.tile {
  position: relative; display: block; overflow: hidden; isolation: isolate;
  color: #fff; border-radius: 0;
  transition: transform .12s ease;
}
.tile.s { grid-column: span 1; grid-row: span 1; }
.tile.m { grid-column: span 2; grid-row: span 2; }
.tile.w { grid-column: span 4; grid-row: span 2; }
.tile::after {
  content: ""; position: absolute; inset: 0; z-index: 3; pointer-events: none;
  border: 2px solid transparent; transition: border-color .15s;
}
.tile:hover::after { border-color: rgba(255, 255, 255, 0.6); }
.tile:focus-visible { outline: none; }
.tile:focus-visible::after { border-color: var(--accent); }
.tile:active { transform: scale(0.96); }

/* Tools that are not built yet */
.tile.soon { opacity: .5; cursor: default; }
.tile.soon:hover::after { border-color: transparent; }
.tile.soon:active { transform: none; }
.soon-tag {
  position: absolute; top: 6px; inset-inline-start: 6px; z-index: 4;
  padding: 1px 8px; border-radius: 9999px;
  background: rgba(0, 0, 0, .4); color: #fff; font-size: 11px; font-weight: 500;
}

.face {
  position: absolute; inset: 0; padding: 10px 12px;
  display: flex; flex-direction: column;
  transition: transform .55s cubic-bezier(.2, .7, .2, 1);
}
.mid { flex: 1; display: grid; place-items: center; min-height: 0; }
.ico { width: 34px; height: 34px; }
.w .ico { width: 44px; height: 44px; }
.s .ico { width: 26px; height: 26px; }
.glyph { font-size: 30px; font-weight: 700; line-height: 1; }
.s .glyph { font-size: 24px; }
.label { font-size: 13px; font-weight: 500; line-height: 1.35; }
.w .label { font-size: 14px; }

.face-b { justify-content: center; align-items: flex-start; gap: 2px; transform: translateY(100%); }
.is-b .face-a { transform: translateY(-100%); }
.is-b .face-b { transform: none; }
.b-big { font-size: 46px; font-weight: 700; line-height: 1.1; }
.b-time { font-size: 34px; font-weight: 600; line-height: 1.15; }
.b-sub { font-size: 13px; font-weight: 500; opacity: 0.92; }
.b-sample { font-size: 40px; font-weight: 800; line-height: 1.2; }
.b-light { font-weight: 300; font-size: 22px; line-height: 1.3; }
