/* Tidyware — phong cách "lưới kỹ thuật + pastel + sticker" (14/11/2026) */
:root {
  --paper: #faf9f5; --ink: #10151c; --muted: #6b6f76; --faint: #e7e6e1; --line: rgba(16,21,28,.10);
  --card: #f3f1ea; --card-line: #e2dfd6; --lime: #c0fe04; --lime-ink: #10151c; --accent: #3d63dd;
  --sky1: #cfe0f6; --sky2: #eef3f7; --sky3: #f5f2e4; --puff: #a9bff0; --puff-dark: #7f9be0;
  --radius: 4px; --max: 1240px;
  --f-head: "TikTok Sans", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
  --f-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;
  --f-pixel: "VT323", "JetBrains Mono", monospace;
  --f-script: "Pacifico", cursive;
  color-scheme: light;
}
:root[data-theme="dark"] {
  --paper: #0f1111; --ink: #f2f1ec; --muted: #9a9ea6; --faint: #23262a; --line: rgba(242,241,236,.09);
  --card: #17191b; --card-line: #26292d; --accent: #8fb0ff;
  --sky1: #142034; --sky2: #10161f; --sky3: #1b1a14; --puff: #6f8fe0; --puff-dark: #4d6cc0;
  color-scheme: dark;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --paper: #0f1111; --ink: #f2f1ec; --muted: #9a9ea6; --faint: #23262a; --line: rgba(242,241,236,.09);
    --card: #17191b; --card-line: #26292d; --accent: #8fb0ff;
    --sky1: #142034; --sky2: #10161f; --sky3: #1b1a14; --puff: #6f8fe0; --puff-dark: #4d6cc0;
    color-scheme: dark;
  }
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--f-mono); font-size: 15px; line-height: 1.65; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
a { color: inherit; }
img { max-width: 100%; display: block; }
::selection { background: var(--lime); color: var(--lime-ink); }

/* Lưới nền: 3 cột kẻ mảnh + dấu "+" ở giao điểm */
.grid-bg { position: fixed; inset: 0; pointer-events: none; z-index: 0;
  background-image:
    linear-gradient(to right, var(--line) 1px, transparent 1px),
    linear-gradient(to bottom, var(--line) 1px, transparent 1px);
  background-size: calc((100% - 32px) / 3) 100%, 100% 340px;
  background-position: 16px 0, 0 0; }
.grid-bg::before, .grid-bg::after { content: "+"; position: absolute; font: 300 18px/1 var(--f-mono); color: var(--muted); opacity: .6; }
.grid-bg::before { left: calc(16px + (100% - 32px) / 3 - 5px); top: 331px; }
.grid-bg::after { left: calc(16px + 2 * (100% - 32px) / 3 - 5px); top: 331px; }

.wrap { position: relative; z-index: 1; max-width: var(--max); margin: 0 auto; padding: 0 16px; }

/* Thanh trên */
header.top { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; justify-content: space-between; padding: 18px 0; gap: 12px; backdrop-filter: blur(8px); }
.brand { font-family: var(--f-pixel); font-size: 30px; letter-spacing: .04em; text-decoration: none; text-transform: uppercase; line-height: 1; }
header.top nav { display: flex; align-items: center; gap: 22px; font-family: var(--f-pixel); font-size: 24px; text-transform: uppercase; }
header.top nav a { text-decoration: none; opacity: .85; }
header.top nav a:hover { opacity: 1; text-decoration: underline; text-underline-offset: 4px; }
.theme-btn { font: inherit; background: none; border: 0; color: inherit; cursor: pointer; padding: 0; opacity: .85; }
.theme-btn:hover { opacity: 1; }

/* Hero pastel + vệt sáng */
.hero { position: relative; margin: 0 -16px; padding: 64px 16px 56px; overflow: hidden;
  background:
    repeating-linear-gradient(115deg, rgba(255,255,255,0) 0 90px, rgba(255,255,255,.55) 140px, rgba(255,255,255,0) 210px),
    linear-gradient(160deg, var(--sky1), var(--sky2) 55%, var(--sky3)); }
.hero .lead { max-width: 900px; font-size: clamp(15px, 2vw, 19px); color: var(--muted); margin: 0; }
.hero .lead b { color: var(--ink); font-weight: 700; }
.puff { display: block; margin: 30px auto 34px; text-align: center; font-family: var(--f-script); font-size: clamp(88px, 18vw, 220px); line-height: 1.1;
  color: var(--puff);
  text-shadow: 0 1px 0 var(--puff-dark), 0 2px 0 var(--puff-dark), 0 3px 0 var(--puff-dark), 0 4px 0 var(--puff-dark), 0 6px 6px rgba(0,0,0,.18), 0 16px 30px rgba(60,90,170,.25);
  -webkit-text-stroke: 1px rgba(255,255,255,.35); user-select: none; }
.headline { font-family: var(--f-head); font-weight: 900; text-transform: uppercase; letter-spacing: -.02em; line-height: .98; margin: 28px 0 10px;
  font-size: clamp(40px, 8.4vw, 112px);
  background: linear-gradient(180deg, var(--ink) 0%, var(--ink) 35%, var(--muted) 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.hero .sub { max-width: 760px; color: var(--muted); font-size: clamp(14px, 1.8vw, 17px); }

/* Sticker viền trắng */
.sticker { position: absolute; z-index: 3; width: var(--s, 92px); transform: rotate(var(--r, -8deg)) translate(var(--px, 0), var(--py, 0)); transition: transform .25s ease-out;
  filter: drop-shadow(0 0 0 #fff) drop-shadow(2px 0 0 #fff) drop-shadow(-2px 0 0 #fff) drop-shadow(0 2px 0 #fff) drop-shadow(0 -2px 0 #fff) drop-shadow(0 10px 16px rgba(0,0,0,.18)); }
.sticker.emoji { width: auto; font-size: var(--s, 54px); line-height: 1; }
@media (prefers-reduced-motion: reduce) { .sticker { transition: none; } }

/* CTA */
.cta { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 26px; }
.btn { display: inline-flex; align-items: center; gap: 8px; padding: 13px 22px; font-family: var(--f-mono); font-weight: 700; font-size: 14px; text-transform: uppercase; letter-spacing: .04em; text-decoration: none; border: 1.5px solid var(--ink); border-radius: var(--radius); color: var(--ink); background: transparent; transition: transform .15s, box-shadow .15s; }
.btn:hover { transform: translate(-2px, -2px); box-shadow: 4px 4px 0 var(--ink); }
.btn.primary { background: var(--lime); color: var(--lime-ink); border-color: var(--lime-ink); }
.fine { color: var(--muted); font-size: 13px; margin-top: 14px; }

/* Mục */
section { position: relative; padding: 72px 0 24px; }
.sec-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 16px; margin-bottom: 30px; }
.sec-head h2 { font-family: var(--f-head); font-weight: 900; text-transform: uppercase; letter-spacing: -.01em; font-size: clamp(28px, 4.4vw, 48px); line-height: 1; margin: 0; }
.sec-head .count { font-family: var(--f-mono); color: var(--muted); font-size: 18px; white-space: nowrap; }
.label { font-family: var(--f-mono); text-transform: uppercase; letter-spacing: .08em; color: var(--muted); font-size: 13px; margin: 0 0 14px; }

/* Thẻ */
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 24px; }
.card { position: relative; background: var(--card); border: 1px solid var(--card-line); border-radius: var(--radius); padding: 22px; }
.card h3 { font-family: var(--f-mono); font-weight: 700; font-size: 18px; margin: 0 0 8px; letter-spacing: -.01em; }
.card p { margin: 0; color: var(--muted); font-size: 14px; }
.tag { display: inline-block; background: var(--lime); color: var(--lime-ink); font-family: var(--f-mono); font-weight: 700; font-size: 12px; text-transform: uppercase; letter-spacing: .08em; padding: 5px 10px; }

/* Thẻ app lớn (trang chủ) */
.app-tile { display: block; text-decoration: none; color: inherit; }
.app-tile .art { position: relative; aspect-ratio: 4 / 5; border: 1px solid var(--card-line); overflow: hidden; display: grid; place-items: center;
  background: radial-gradient(circle at 30% 20%, rgba(255,255,255,.55), transparent 55%), linear-gradient(135deg, var(--c1, #3d63dd), var(--c2, #7b5cf0)); }
.app-tile .art img { width: 46%; max-width: 200px; margin-top: -18%; filter: drop-shadow(0 18px 30px rgba(0,0,0,.35)); transition: transform .35s; }
.app-tile:hover .art img { transform: translateY(-6px) rotate(-3deg) scale(1.04); }
.app-tile .art .tag { position: absolute; top: 16px; right: 16px; }
.app-tile .art .pitch { position: absolute; left: 22px; bottom: 18px; right: 22px; color: #fff; font-family: var(--f-head); font-weight: 800; font-size: clamp(18px, 2.6vw, 30px); line-height: 1.1; text-shadow: 0 2px 12px rgba(0,0,0,.25); }
.app-tile .meta { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 16px 2px 0; }
.app-tile .meta { flex-direction: column; gap: 2px; }
.app-tile .meta h3 { font-family: var(--f-head); font-weight: 800; font-size: 24px; margin: 0; }
.app-tile .meta span { color: var(--muted); font-size: 13px; }
.apps-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 24px; }

/* Tuyên ngôn chữ nhạt khổng lồ */
.statement { text-align: center; padding: 90px 0; }
.statement p { margin: 0; font-family: var(--f-head); font-weight: 900; text-transform: uppercase; font-size: clamp(44px, 11vw, 140px); line-height: 1.02; letter-spacing: -.02em; color: var(--faint); }
.statement p span { color: var(--ink); }

/* Câu lệnh AI dạng terminal */
.prompts { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.prompts li { background: var(--card); border: 1px solid var(--card-line); padding: 13px 16px; font-size: 14px; }
.prompts li::before { content: "> "; color: var(--accent); font-weight: 700; }

/* Bảng */
.table-scroll { overflow-x: auto; }
table.cmp { width: 100%; border-collapse: collapse; font-size: 14px; }
table.cmp th, table.cmp td { text-align: left; padding: 12px 10px; border-bottom: 1px solid var(--card-line); vertical-align: top; }
table.cmp th { color: var(--muted); font-weight: 500; text-transform: uppercase; font-size: 12px; letter-spacing: .08em; }

/* Giá */
.price-box { display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center; background: var(--ink); color: var(--paper); padding: 34px; border-radius: var(--radius); }
.price-box .amount { font-family: var(--f-head); font-weight: 900; font-size: clamp(56px, 10vw, 112px); line-height: 1; margin: 0; color: var(--lime); }
.price-box p { margin: 6px 0 0; color: color-mix(in srgb, var(--paper) 70%, transparent); }
.price-box .btn { border-color: var(--lime); }
@media (max-width: 640px) { .price-box { grid-template-columns: 1fr; } }

details { background: var(--card); border: 1px solid var(--card-line); padding: 14px 18px; margin-bottom: 10px; }
details summary { cursor: pointer; font-weight: 700; }
details p { color: var(--muted); margin: 10px 0 2px; }
pre { background: var(--ink); color: var(--paper); padding: 16px; overflow-x: auto; font-size: 13px; border-radius: var(--radius); }
code { font-family: var(--f-mono); }

.demo { position: relative; margin: 34px auto 0; max-width: 760px; border: 1px solid var(--card-line); background: var(--card); display: grid; place-items: center; color: var(--muted); overflow: hidden; }
.demo img, .demo video { width: 100%; height: auto; }
.demo:empty { display: none; }

/* Prose (privacy / terms) */
.prose { max-width: 820px; }
.prose h1 { font-family: var(--f-head); font-weight: 900; text-transform: uppercase; font-size: clamp(34px, 6vw, 64px); line-height: 1; margin: 30px 0 8px; }
.prose h2 { font-family: var(--f-head); font-weight: 800; font-size: 22px; margin: 34px 0 8px; }
.prose p, .prose li { color: var(--muted); }
.prose strong { color: var(--ink); }

footer { position: relative; z-index: 1; border-top: 1px solid var(--card-line); margin-top: 60px; padding: 26px 0 120px; color: var(--muted); font-size: 13px; }
footer a { margin-right: 16px; }

/* Đồng hồ + nút lên đầu */
.clock { position: fixed; left: 16px; bottom: 14px; z-index: 30; font-family: var(--f-mono); font-size: 12px; letter-spacing: .06em; color: var(--muted); text-transform: uppercase; background: color-mix(in srgb, var(--paper) 80%, transparent); padding: 4px 8px; }
.to-top { position: fixed; right: 16px; bottom: 14px; z-index: 30; width: 52px; height: 52px; border-radius: 50%; border: 1px solid var(--card-line); background: var(--sky1); color: var(--ink); font-size: 20px; cursor: pointer; opacity: 0; pointer-events: none; transition: opacity .2s; }
.to-top.show { opacity: 1; pointer-events: auto; }

/* Hiện dần khi cuộn */
.reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s ease; }
.reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; transition: none; } }

@media (max-width: 640px) {
  .brand { font-size: 24px; }
  header.top nav { gap: 14px; font-size: 19px; }
  header.top nav .hide-sm { display: none; }
  .hero { padding-top: 40px; }
  .hero .sticker { width: 56px !important; top: auto !important; bottom: 18px; right: 16px !important; left: auto !important; }
  .hero .sticker.emoji { display: none; }
  .hero .fine { padding-right: 70px; }
  .hero .sticker ~ .sticker:not(.emoji) { display: none; }
  .sec-head .count { font-size: 14px; }
  .clock { font-size: 10px; }
  section { padding-top: 56px; }
}
