/* ==========================================================================
   The App UX Teardown — styles (extends tokens/app/pulse css)
   ========================================================================== */
/* hero screenshot fan */
.au-hero-shots { position: relative; height: 420px; display: flex; align-items: center; justify-content: center; }
@media (max-width: 900px) { .au-hero-shots { height: 320px; } }
.au-hs { position: absolute; width: 150px; border-radius: 18px; overflow: hidden; border: 1px solid var(--line-2);
  box-shadow: 0 20px 50px rgba(0,0,0,0.5); transition: transform var(--dur); background: var(--deep); }
.au-hs img { width: 100%; display: block; }
.au-hs-0 { transform: rotate(-8deg) translate(-120px, 0); z-index: 2; }
.au-hs-1 { transform: rotate(-3deg) translate(-40px, 20px); z-index: 3; }
.au-hs-2 { transform: rotate(3deg) translate(60px, 0); z-index: 2; }
.au-hs-3 { transform: rotate(9deg) translate(150px, 20px); z-index: 1; }
.au-hero-shots:hover .au-hs { transform: rotate(0) translate(0, 0); position: relative; }
@media (max-width: 620px) { .au-hs { width: 110px; } .au-hs-0 { transform: rotate(-8deg) translate(-80px,0); } .au-hs-3 { transform: rotate(9deg) translate(100px,10px); } }

/* matrix */
.matrix-wrap { overflow-x: auto; margin-top: 1.2rem; border: 1px solid var(--line); border-radius: var(--radius); }
.au-matrix { width: 100%; border-collapse: collapse; min-width: 720px; }
.au-matrix th { font-family: var(--font-mono); font-size: 0.54rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-4);
  padding: 0.7rem 0.5rem; background: var(--surface-2); border-bottom: 1px solid var(--line-2); text-align: center; }
.au-matrix th:first-child { text-align: left; padding-left: 1rem; }
.au-m-brand { padding: 0.5rem 1rem; font-family: var(--font-display); font-weight: 700; font-size: 0.9rem; border-bottom: 1px solid var(--line); }
.au-m-brand span { border-left: 3px solid var(--pa); padding-left: 0.5rem; }
.au-cell { text-align: center; border-bottom: 1px solid var(--void); border-left: 1px solid var(--void); position: relative; height: 40px; }
.au-cell span { font-family: var(--font-mono); font-size: 0.72rem; color: #04160f; font-weight: 600; mix-blend-mode: luminosity; }
.au-overall span { color: var(--ink); mix-blend-mode: normal; font-weight: 700; }

/* per-app teardown */
.au-apps { display: flex; flex-direction: column; gap: 1.4rem; margin-top: 1.2rem; }
.au-app { border: 1px solid var(--line); border-top: 3px solid var(--pa); border-radius: var(--radius-lg); padding: clamp(1.2rem, 2.4vw, 1.8rem);
  background: linear-gradient(160deg, var(--glass-2), var(--glass)); }
.au-app-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; flex-wrap: wrap; margin-bottom: 1rem; }
.au-app-name { font-family: var(--font-display); font-weight: 800; font-size: 1.5rem; color: var(--pa); }
.au-app-sub { display: block; font-size: 0.72rem; color: var(--ink-4); margin-top: 0.15rem; }
.au-app-ratings { display: flex; gap: 0.8rem; flex-wrap: wrap; }
.au-app-ratings span { font-size: 0.7rem; color: var(--ink-2); } .au-app-ratings b { color: var(--ink-4); font-weight: 400; font-size: 0.56rem; }
.au-shots { display: flex; gap: 0.8rem; overflow-x: auto; padding-bottom: 0.5rem; margin-bottom: 1.2rem; scroll-snap-type: x mandatory; }
.au-shot { flex: none; width: 168px; border-radius: 14px; overflow: hidden; border: 1px solid var(--line-2); scroll-snap-align: start; background: var(--deep); transition: transform var(--dur-fast); }
.au-shot:hover { transform: translateY(-4px); }
.au-shot img { width: 100%; display: block; }
.au-body { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 1.4rem; }
@media (max-width: 860px) { .au-body { grid-template-columns: 1fr; } }
.au-visual h4, .au-evidence h4 { font-size: 0.56rem; letter-spacing: 0.1em; color: var(--pa); margin: 0 0 0.6rem; }
.au-visual p { font-size: 0.9rem; color: var(--ink); line-height: 1.6; margin: 0 0 0.9rem; }
.au-read { color: var(--ink-2) !important; font-size: 0.84rem !important; font-style: italic; padding-left: 0.9rem; border-left: 2px solid var(--pa); }
.au-scores { display: flex; flex-direction: column; gap: 0.45rem; margin-bottom: 1.2rem; }
.au-sc { display: grid; grid-template-columns: 1fr 90px 34px; align-items: center; gap: 0.6rem; }
.au-sc-l { font-size: 0.74rem; color: var(--ink-2); }
.au-sc-bar { height: 6px; border-radius: 100px; background: rgba(255,255,255,0.05); overflow: hidden; }
.au-sc-bar span { display: block; height: 100%; border-radius: 100px; }
.au-sc-v { font-size: 0.68rem; color: var(--ink-3); text-align: right; }
.au-sc-total { grid-template-columns: 1fr auto; padding-top: 0.5rem; border-top: 1px solid var(--line); }
.au-sc-total .au-sc-l { font-family: var(--font-display); font-weight: 700; color: var(--ink); }
.au-sc-total .au-sc-v { font-size: 0.9rem; color: var(--pa); font-weight: 600; }
.au-evidence { background: var(--surface); border: 1px solid var(--line); border-radius: 14px; padding: 1rem 1.1rem; }
.au-rev { padding: 0.6rem 0; border-bottom: 1px solid var(--line); }
.au-rev:last-child { border-bottom: 0; }
.au-rev-stars { color: var(--orange); font-size: 0.8rem; letter-spacing: 0.1em; }
.au-rev p { font-size: 0.82rem; color: var(--ink); font-style: italic; margin: 0.3rem 0; line-height: 1.45; }
.au-rev-src { font-size: 0.54rem; color: var(--ink-4); letter-spacing: 0.06em; text-transform: uppercase; }

/* best practices */
.bp-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; margin-top: 1.2rem; }
@media (max-width: 760px) { .bp-grid { grid-template-columns: 1fr; } }
.bp-card { border: 1px solid var(--line); border-radius: var(--radius); padding: 1.4rem; background: linear-gradient(165deg, var(--surface-2), var(--surface)); position: relative; }
.bp-n { position: absolute; top: 1.1rem; right: 1.2rem; font-size: 1.2rem; color: var(--r4); font-weight: 600; opacity: 0.5; }
.bp-card h4 { font-family: var(--font-display); font-size: 1.1rem; margin: 0 0 0.6rem; max-width: 88%; }
.bp-card p { font-size: 0.86rem; color: var(--ink-2); margin: 0 0 1rem; line-height: 1.55; }
.bp-ref { font-size: 0.68rem; color: var(--r4); border-top: 1px solid var(--line); padding-top: 0.8rem; display: block; transition: color var(--dur-fast); }
.bp-ref:hover { color: var(--lime); }
