:root { color-scheme: dark; --bg:#101419; --surface:#181e25; --text:#eef2f7; --muted:#b9c5d2; --line:#35414d; --selection:#99cdf3; font:16px/1.5 'DM Sans',sans-serif; font-synthesis:none; }
[data-tone=blue] { --tone-accent:#99cdf3; --tone-fill:#264d6b; --tone-hover:#335f80; --tone-selected:#3c729c; }
[data-tone=coral] { --tone-accent:#f29b8f; --tone-fill:#67414c; --tone-hover:#80515b; --tone-selected:#985961; }
[data-tone=gold] { --tone-accent:#e1bb68; --tone-fill:#69572b; --tone-hover:#806a35; --tone-selected:#967d3e; }
[data-tone=violet] { --tone-accent:#b8a0e7; --tone-fill:#523e75; --tone-hover:#68538d; --tone-selected:#7960a6; }
[data-tone=teal] { --tone-accent:#77c8b0; --tone-fill:#285c53; --tone-hover:#357569; --tone-selected:#3e887b; }
* { box-sizing:border-box; }
body { margin:0; padding:0 32px 28px; background:var(--bg); color:var(--text); }
button,input,select { font:inherit; color:inherit; }
button,a,select { touch-action:manipulation; -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; background:none; border:0; }
button:disabled { cursor:default; opacity:.5; }
a { color:inherit; text-decoration:none; }
a:hover { text-decoration:underline; text-underline-offset:4px; }
button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible,[tabindex]:focus-visible { outline:2px solid var(--text); outline-offset:4px; }
svg { fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; width:20px; height:20px; }
[hidden] { display:none!important; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.skip { position:fixed; top:8px; left:24px; z-index:5; padding:10px 16px; background:#25313e; transform:translateY(-160%); }
.skip:focus { transform:none; }
.av-shell { max-width:1560px; margin:auto; }
.av-header { height:66px; display:flex; align-items:center; justify-content:space-between; gap:24px; border-bottom:1px solid var(--line); }
.av-brand { display:flex; align-items:center; gap:12px; white-space:nowrap; font-size:25px; font-weight:600; letter-spacing:-.65px; }
.av-brand svg { width:36px; height:36px; color:var(--selection); stroke-width:1.3; }
.domain { color:var(--selection); }
.av-header nav { display:flex; align-items:center; gap:32px; }
.av-header nav a { min-height:44px; display:inline-flex; align-items:center; gap:5px; font-size:16px; color:var(--muted); }
.av-header nav .active { color:var(--text); text-decoration:underline; text-underline-offset:13px; text-decoration-thickness:2px; text-decoration-color:var(--selection); }
.av-header nav svg { width:15px; height:15px; }
main { padding-top:18px; }
.page-heading { display:flex; align-items:center; gap:28px; margin-bottom:12px; }
.page-heading h1 { margin:0; font-size:42px; line-height:50px; font-weight:600; letter-spacing:-1.1px; white-space:nowrap; }
.app-store-heading { display:flex; align-items:center; gap:20px; border-left:1px solid #506071; padding-left:28px; font-size:24px; font-weight:500; }
.app-store-heading img { display:block; width:44px; height:44px; border-radius:10px; flex-shrink:0; }
.app-store-heading-copy { min-width:0; }
.app-store-heading-copy p { margin:5px 0 0; color:var(--muted); font-size:14px; line-height:1.45; font-weight:400; }
.subscription-row { display:flex; align-items:center; flex-wrap:wrap; gap:24px; }
.subscribe-button { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:44px; padding:9px 18px; border:1px solid #cbe6fd; border-radius:8px; background:#cbe6fd; color:#142c40; font-size:20px; line-height:24px; font-weight:600; white-space:nowrap; transition:background-color 120ms ease,border-color 120ms ease; }
.subscribe-button:hover { background:#e2f1fe; border-color:#e2f1fe; }
.subscribe-button:active { background:#b7d8f2; border-color:#b7d8f2; }
#subscribe-price { font-weight:500; }
.stripe-badge { display:block; width:190px; height:auto; flex-shrink:0; }
.subscription-info { margin:7px 0 12px; color:var(--muted); font-size:18px; line-height:24px; }
#subscribe-status { margin:0 0 12px; color:var(--muted); font-size:14px; }
#subscribe-status:empty { display:none; }
.restore-access { position:relative; }
.restore-access > summary { display:flex; align-items:center; min-height:44px; list-style:none; cursor:pointer; color:var(--selection); font-size:17px; text-decoration:underline; text-underline-offset:4px; }
.restore-access > summary::-webkit-details-marker { display:none; }
.restore-form { position:absolute; top:calc(100% + 8px); left:0; z-index:4; width:min(420px,calc(100vw - 40px)); padding:20px; background:#1b242d; border:1px solid #617587; border-radius:10px; box-shadow:0 10px 30px #0005; }
.restore-form label { display:block; font-size:14px; margin-bottom:8px; }
.restore-input-row { display:grid; gap:10px; }
.restore-input-row input { min-width:0; width:100%; height:44px; border:1px solid #73889b; background:var(--bg); border-radius:6px; padding:8px 12px; }
.restore-input-row button { min-height:44px; border:1px solid #9dc2e2; border-radius:6px; background:#284057; }
#restore-status { margin:10px 0 0; font-size:13px; color:var(--muted); }
#restore-status:empty { display:none; }
.controls { display:grid; grid-template-columns:1.05fr .9fr 1.08fr minmax(280px,1.35fr); gap:38px; align-items:start; }
.controls label,.chart-control { display:grid; gap:7px; font-size:17px; line-height:22px; }
.controls select,.category-jump select,.chart-tools input { width:100%; min-width:0; min-height:46px; padding:9px 14px; border:1px solid #667c8c; border-radius:7px; background:var(--surface); font-size:18px; line-height:26px; }
.chart-types { display:flex; border:1px solid #667c8c; border-radius:7px; overflow:hidden; }
.chart-types button { flex:1; min-height:44px; min-width:0; padding:7px 8px; font-size:18px; line-height:28px; white-space:nowrap; color:var(--muted); border-right:1px solid #667c8c; }
.chart-types button:last-child { border-right:0; flex:1.4; }
.chart-types button[aria-pressed=true] { background:#294e6e; color:#f1f7ff; font-weight:600; border-bottom:2px solid var(--selection); padding-bottom:5px; }
.chart-meaning { margin:0; min-height:20px; font-size:14px; line-height:20px; color:var(--muted); }
.tool-layout { display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr); gap:72px; margin-top:26px; align-items:start; }
.section-top,.chart-top { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; }
.section-top h2,.chart-top h2 { margin:0; font-size:30px; line-height:36px; font-weight:600; letter-spacing:-.55px; }
.section-top p,.chart-top p { margin:2px 0 0; font-size:18px; line-height:26px; color:var(--muted); }
.all-category,.quiet-button { flex-shrink:0; display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:40px; padding:7px 12px; border:1px solid #7791a5; border-radius:7px; font-size:16px; line-height:24px; }
.all-category[aria-pressed=true] { border-color:var(--selection); color:var(--text); background:#1b2935; }
.all-category:hover,.quiet-button:hover { background:#233240; }
.category-jump { display:grid; grid-template-columns:96px minmax(0,1fr); gap:18px; align-items:center; margin-top:12px; font-size:18px; }
.category-jump select { color:var(--tone-accent,var(--selection)); border-color:var(--tone-accent,var(--selection)); }
.wheel-canvas { position:relative; width:100%; max-width:620px; margin:12px auto 0; }
.wheel-svg { display:block; width:100%; height:auto; overflow:visible; }
.wheel-sector { fill:var(--tone-fill); stroke:var(--line); stroke-width:1; cursor:pointer; }
.wheel-option:hover .wheel-sector { fill:var(--tone-hover); }
.wheel-option[aria-pressed=true] .wheel-sector { fill:var(--tone-selected); stroke:var(--tone-accent); stroke-width:3; }
.wheel-option:focus-visible { outline:0; }
.wheel-option:focus-visible .wheel-sector { stroke:var(--text); stroke-width:7; }
.wheel-option:focus-visible .category-label { text-decoration:underline; }
.wheel-divider { fill:none; stroke:#35414d; stroke-width:1; pointer-events:none; }
.wheel-leader { stroke:var(--tone-accent); stroke-width:1.4; pointer-events:none; }
.category-label { fill:var(--text); stroke:none; font:500 17px 'DM Sans',sans-serif; pointer-events:all; cursor:pointer; }
.wheel-option[aria-pressed=true] .category-label { font-weight:600; }
.wheel-highlight { fill:none; stroke:var(--tone-accent); stroke-width:3; pointer-events:none; }
.core-title { fill:var(--tone-accent); stroke:none; text-anchor:middle; font:600 26px 'DM Sans',sans-serif; letter-spacing:-.5px; }
.core-chart { fill:var(--text); stroke:none; text-anchor:middle; font:400 17px 'DM Sans',sans-serif; }
.wheel-pager { display:flex; justify-content:center; align-items:center; gap:16px; color:var(--muted); font-size:13px; line-height:20px; margin-top:8px; }
.wheel-pager button { width:44px; height:44px; display:grid; place-items:center; border:1px solid #6c8193; border-radius:6px; }
.wheel-pager svg { width:16px; height:16px; }
#wheel-details > summary { display:none; }
.chart-top h2 { color:var(--tone-accent,var(--selection)); }
.chart-top h2::before { content:''; display:inline-block; width:4px; height:28px; margin-right:14px; border-radius:2px; background:var(--tone-accent,var(--selection)); vertical-align:-4px; }
.chart-top p { margin-top:7px; }
.chart-tools { display:flex; align-items:center; gap:28px; margin:16px 0 18px; }
.chart-search { flex:1; min-width:0; position:relative; }
.chart-search > svg { position:absolute; left:14px; top:13px; width:20px; height:20px; color:var(--muted); pointer-events:none; }
.chart-tools input { padding-left:46px; }
.chart-tools input::placeholder { color:var(--muted); opacity:1; }
.chart-tools input:disabled { opacity:.5; }
#result-count { white-space:nowrap; font-size:17px; color:var(--muted); font-variant-numeric:tabular-nums; }
.results-scroll { max-height:610px; overflow-y:auto; overscroll-behavior:contain; scrollbar-color:#536575 var(--bg); scrollbar-width:thin; padding-right:8px; }
.app-list,.locked-app-list { list-style:none; padding:0; margin:0; }
.app-row { display:flex; align-items:center; gap:24px; min-height:100px; padding:17px 0 17px 12px; border-bottom:1px solid #435361; min-width:0; }
.app-rank { width:36px; flex-shrink:0; text-align:center; color:var(--text); font-size:20px; font-variant-numeric:tabular-nums; }
.app-art { display:grid; place-items:center; width:68px; height:68px; flex-shrink:0; border-radius:14px; overflow:hidden; background:#26313d; color:var(--muted); font-size:24px; }
.app-art img { width:100%; height:100%; object-fit:cover; }
.app-text { min-width:0; flex:1; margin-left:8px; }
.app-name { display:block; font-size:23px; line-height:30px; font-weight:600; overflow-wrap:anywhere; }
.app-dev { margin-top:3px; font-size:18px; line-height:24px; color:var(--muted); overflow-wrap:anywhere; }
.app-open { display:grid; place-items:center; min-height:44px; width:30px; flex-shrink:0; color:var(--text); }
.app-open svg { width:22px; height:22px; }
.locked-chart { position:relative; }
.locked-prompt { position:sticky; top:0; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:18px 0; background:var(--bg); border-bottom:1px solid #435361; }
.locked-prompt h3 { margin:0; font-size:20px; line-height:28px; font-weight:600; }
.locked-prompt p { margin:3px 0 0; font-size:14px; line-height:20px; color:var(--muted); }
.locked-prompt .subscribe-button { min-height:44px; font-size:15px; padding:8px 14px; }
.locked-app-list { user-select:none; pointer-events:none; }
.locked-app-row { display:flex; align-items:center; gap:24px; min-height:100px; padding:17px 0; border-bottom:1px solid #303c47; opacity:.65; }
.locked-app-content { display:flex; align-items:center; flex:1; gap:24px; filter:blur(7px); overflow:hidden; }
.locked-app-art { width:68px; height:68px; border-radius:14px; flex-shrink:0; background:#294f70; }
.locked-app-row:nth-child(4n+2) .locked-app-art { background:#685387; }
.locked-app-row:nth-child(4n+3) .locked-app-art { background:#3f7468; }
.locked-app-row:nth-child(4n+4) .locked-app-art { background:#806a3e; }
.locked-app-text { flex:1; min-width:0; }
.locked-app-name,.locked-app-developer { display:block; background:#aab9c7; height:15px; width:74%; border-radius:5px; }
.locked-app-developer { margin-top:12px; height:10px; width:40%; background:#7a8b9b; }
.locked-app-row:nth-child(3n+2) .locked-app-name { width:58%; }
.locked-app-row:nth-child(3n+3) .locked-app-name { width:84%; }
.chart-provenance { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; border-top:1px solid var(--line); padding-top:12px; margin-top:10px; color:var(--muted); font-size:14px; line-height:21px; }
.chart-provenance a { display:inline-flex; align-items:center; gap:4px; white-space:nowrap; color:var(--selection); }
.chart-provenance svg { width:15px; height:15px; }
#chart-state { margin:0; color:var(--muted); font-size:15px; line-height:22px; }
#chart-state:not(:empty) { padding:10px 0 16px; }
.back-categories { display:none; }
.loading-wheel { position:absolute; top:45%; width:100%; text-align:center; color:var(--muted); font-size:14px; }
details:not([open]) .when-open,details[open] .when-closed { display:none; }
@media (max-width:1450px) {
 .av-brand { font-size:21px; } .av-header nav { gap:24px; } .av-header nav a { font-size:14px; }
 .page-heading h1 { font-size:36px; line-height:44px; } .app-store-heading { font-size:21px; }
 .controls { gap:24px; } .controls select,.chart-types button { font-size:16px; }
 .tool-layout { gap:44px; grid-template-columns:minmax(0,.87fr) minmax(0,1.13fr); }
 .section-top h2,.chart-top h2 { font-size:24px; line-height:32px; } .section-top p,.chart-top p { font-size:16px; line-height:24px; }
 .category-jump { grid-template-columns:78px minmax(0,1fr); gap:12px; font-size:16px; }
 .category-jump select,.chart-tools input { font-size:16px; }
 .chart-tools { gap:16px; margin:12px 0; } #result-count { font-size:14px; }
 .app-row,.locked-app-row { min-height:84px; padding:13px 0; gap:16px; } .app-art,.locked-app-art { width:56px; height:56px; border-radius:12px; }
 .app-rank { width:24px; font-size:17px; } .app-text { margin-left:0; } .app-name { font-size:18px; line-height:24px; } .app-dev { font-size:14px; line-height:20px; }
 .locked-app-content { gap:16px; } .locked-prompt { gap:14px; } .locked-prompt h3 { font-size:18px; } .locked-prompt p { font-size:13px; }
 .results-scroll { max-height:540px; } .chart-provenance { font-size:12px; line-height:18px; }
}
@media (max-width:1000px) {
 .av-header { height:auto; min-height:66px; flex-wrap:wrap; padding:14px 0 10px; gap:4px 24px; }
 .av-header nav { flex-wrap:wrap; gap:4px 24px; } .av-header nav .active { text-underline-offset:7px; }
 .controls { grid-template-columns:1fr 1fr; gap:16px 24px; } .chart-meaning { min-height:40px; }
 .tool-layout { grid-template-columns:1fr; gap:28px; margin-top:18px; } .category-section { width:100%; max-width:600px; margin:auto; }
 .chart-section { padding-top:22px; border-top:1px solid var(--line); }
 .results-scroll { max-height:620px; } .back-categories { display:inline-flex; align-items:center; min-height:44px; margin-top:8px; font-size:14px; color:var(--muted); }
 .restore-form { left:auto; right:0; }
}
@media (max-width:600px) {
 body { padding:0 18px 24px; } .av-header nav { display:grid; grid-template-columns:repeat(3,max-content); gap:4px 24px; } .av-header nav a { font-size:12px; }
 .av-brand { font-size:20px; } .av-brand svg { width:28px; height:28px; }
 main { padding-top:20px; } .page-heading { flex-wrap:wrap; gap:8px; margin-bottom:16px; } .page-heading h1 { font-size:32px; line-height:38px; }
 .app-store-heading { border:0; padding:0; gap:10px; width:100%; font-size:17px; } .app-store-heading img { width:30px; height:30px; border-radius:7px; }
 .subscription-row { gap:8px 14px; } .subscribe-button { min-height:44px; font-size:15px; line-height:22px; padding:10px 12px; }
 .stripe-badge { width:132px; } .restore-access { flex-basis:100%; } .restore-access > summary { font-size:15px; }
 .restore-form { left:0; right:auto; width:min(354px,calc(100vw - 36px)); }
 .subscription-info { font-size:13px; line-height:20px; margin:2px 0 18px; }
 .controls { gap:12px; } .controls label:first-child { grid-column:1/-1; } .chart-control { grid-column:1/-1; } .controls label { font-size:14px; }
 .controls select { font-size:16px; } .chart-types button { font-size:16px; } .chart-meaning { min-height:20px; font-size:12px; }
 .section-top h2,.chart-top h2 { font-size:22px; line-height:30px; } .section-top p,.chart-top p { font-size:14px; line-height:22px; }
 .all-category,.quiet-button { min-height:44px; padding:8px 10px; font-size:13px; }
 .category-jump { grid-template-columns:1fr; gap:6px; margin-top:12px; font-size:14px; }
 #wheel-details { margin-top:10px; } #wheel-details > summary { display:flex; align-items:center; justify-content:space-between; min-height:44px; border-bottom:1px solid var(--line); font-size:14px; color:var(--muted); cursor:pointer; }
 summary span { font-size:12px; } .wheel-canvas { width:calc(100% - 24px); margin:12px 12px 0; } .category-label { font-size:20px; } .core-title { font-size:28px; } .core-chart { font-size:19px; }
 #wheel-details:not([open]) + .wheel-pager { display:none; }
 .chart-top .quiet-button { width:44px; min-width:44px; padding:0; } .quiet-button span { display:none; }
 .chart-tools { flex-wrap:wrap; gap:6px; margin:12px 0 8px; } .chart-search { flex-basis:100%; } #result-count { font-size:13px; }
 .app-row,.locked-app-row { gap:12px; min-height:82px; padding:12px 0; } .app-rank { width:16px; font-size:15px; } .app-art,.locked-app-art { width:48px; height:48px; border-radius:10px; }
 .app-name { font-size:16px; line-height:22px; } .app-dev { font-size:12px; line-height:18px; } .app-open { width:22px; } .app-open svg { width:18px; height:18px; }
 .locked-app-content { gap:12px; } .locked-prompt { flex-wrap:wrap; gap:10px; padding:16px 0; } .locked-prompt .subscribe-button { font-size:14px; }
 .results-scroll { max-height:570px; padding-right:4px; } .chart-provenance { flex-direction:column; gap:8px; }
}
@media (prefers-reduced-motion:reduce) { * { transition:none!important; scroll-behavior:auto!important; } }
