/* Selected rank-crossing study, implemented in the existing static site.
   Design provenance and licenses: ../SITE.md and fonts/. */
:root{color-scheme:dark;--bg:#0b0b0c;--paper:#121315;--ink:#f4f4f5;--ink2:#b7b9bf;--muted:#b0b3b9;--line:#35383d;--line2:#252a2f;--accent:#e4a077;--accent-soft:#493426;--ok:#95b6a8;--code:#16181b;--wire:#849ba8;--focus:#f5c8aa}
:root[data-theme=light]{color-scheme:light;--bg:#fff;--paper:#f4f6f6;--ink:#16191b;--ink2:#4f575d;--muted:#58636b;--line:#d3d9dd;--line2:#e6e9eb;--accent:#8f4d2c;--accent-soft:#eddbcf;--ok:#35604e;--code:#f0f3f4;--wire:#718690;--focus:#713c22}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:90px}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.65 'Pretendard Variable',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}a{color:inherit;text-underline-offset:5px}button{font:inherit;color:inherit;background:none;border:1px solid var(--line);border-radius:4px;min-height:44px;padding:9px 15px;cursor:pointer}button,a{touch-action:manipulation}button:hover{border-color:var(--muted)}:focus-visible{outline:2px solid var(--focus);outline-offset:4px}.skip-link{position:fixed;top:-80px;left:20px;z-index:30;padding:10px 20px;background:var(--ink);color:var(--bg)}.skip-link:focus{top:12px}.site-header{display:flex;gap:36px;align-items:center;min-height:66px;padding:0 4.2%;border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0;z-index:10}.wordmark{display:inline-flex;align-items:center;min-height:44px;font:650 18px 'Archivo Wide',sans-serif;white-space:nowrap;text-decoration:none}.site-header nav{display:flex;gap:26px;align-items:center;flex:1;overflow:auto}.site-header nav a{display:flex;align-items:center;min-height:64px;white-space:nowrap;text-decoration:none;color:var(--muted);font-size:15px}.site-header nav a:hover{color:var(--ink)}.theme-toggle{border:0;padding:8px 0;color:var(--muted);font-size:14px;min-width:44px}.rank-hero{display:grid;grid-template-columns:34% 1fr;gap:10px 4%;padding:20px 4.2% 25px;container-type:inline-size;min-height:636px}.rank-heading h1{font-size:clamp(36px,4.4cqw,66px);line-height:1.07;letter-spacing:-.032em;font-weight:670;margin:0}.rank-heading>p{font-size:18px;line-height:1.6;color:var(--muted);margin:25px 0 0}.rank-key{margin:30px 0 28px}.rank-key strong{font-size:84px;line-height:1;letter-spacing:-.05em;font-weight:680}.rank-key strong span{font-size:45px}.rank-key p{font-size:14px;color:var(--muted);line-height:1.55;margin:15px 0 0}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:22px;min-height:44px;padding:10px 17px;border-radius:4px;border:1px solid var(--line);text-decoration:none;font-size:15px}.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}.primary:hover{opacity:.88}.rank-chart{min-width:0}.chart-scroll{overflow-x:auto;padding:0 2px}.rank-titles{display:flex;justify-content:space-between;font-size:16px;font-weight:600;padding:0 3.2% 8px;min-width:650px}.rank-chart svg{display:block;width:100%;height:440px;min-width:650px;overflow:visible}.rank-model path{fill:none;stroke:var(--wire);stroke-width:.9;opacity:.55;transition:stroke .2s,opacity .2s}.rank-model .hit-path{stroke:transparent;stroke-width:14;opacity:1;pointer-events:stroke}.rank-model circle{fill:var(--wire);r:2.8}.rank-model text{font:16px 'Pretendard Variable',sans-serif;fill:var(--muted)}.rank-model{cursor:pointer;outline:none}.rank-model.emphasis path:not(.hit-path){stroke:var(--accent);opacity:1;stroke-width:1.8}.rank-model.emphasis circle{fill:var(--accent)}.rank-model.emphasis text{fill:var(--accent)}.rank-model:hover path:not(.hit-path),.rank-model:focus-visible path:not(.hit-path),.rank-model.selected path:not(.hit-path){stroke:var(--ink);opacity:1;stroke-width:2.4}.rank-model:hover text,.rank-model:focus-visible text,.rank-model.selected text{fill:var(--ink)}.rank-model:focus-visible text{text-decoration:underline}.chart-controls{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:6px}.chart-controls button{font-size:13px;min-height:36px;padding:5px 12px}.chart-controls a{font-size:13px;min-height:36px;display:flex;align-items:center}.rank-selection{min-height:23px;color:var(--muted);font-size:13px;line-height:1.6;margin:11px 0 0;text-align:center}.hero-note{grid-column:1/-1;font-size:13px;color:var(--muted);margin:0;line-height:1.6}.chart-scroll-hint{display:none;font-size:12px;color:var(--muted);margin:8px 0 0}.data-error{grid-column:1/-1;font-size:15px}.evidence-section{border-top:1px solid var(--line);padding:46px 4.2%;max-width:1450px;margin:0 auto}.evidence-section>h2{font-size:32px;line-height:1.2;margin:0 0 15px}.evidence-section>p{color:var(--muted);max-width:850px}.evidence-links{display:flex;gap:25px;flex-wrap:wrap;margin-top:20px}.evidence-links a{min-height:44px;font-size:14px;display:inline-flex;align-items:center}.metric-controls{display:flex;gap:12px;align-items:center;margin:23px 0 18px;flex-wrap:wrap}.metric-controls span{color:var(--muted);font-size:14px;margin-right:8px}.metric-controls button{font-size:14px}.metric-controls button[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}#retention-summary{color:var(--accent);font-size:17px}.rank-table-wrap{overflow-x:auto}.rank-table{border-collapse:collapse;width:100%;min-width:630px;font-size:14px;text-align:left}.rank-table th{font-weight:500;color:var(--muted);font-size:13px;padding:14px 12px;border-bottom:1px solid var(--line)}.rank-table td{padding:8px 12px;border-bottom:1px solid var(--line2)}.rank-table td button{font-size:14px;border:0;padding:4px 0;min-height:36px;color:var(--ink)}.rank-table tr[data-selected=true]{background:var(--accent-soft)}.rank-table td:first-child{font-weight:550}.study{max-width:820px;margin:0 auto;padding:60px 30px 50px;border-top:1px solid var(--line)}.study>h2#study-title{font-size:38px;line-height:1.2;margin:0 0 10px}.sub{font-size:19px;color:var(--ink2);margin:0 0 14px}.meta{font-size:14px;color:var(--muted)}.links{display:flex;flex-wrap:wrap;gap:8px 24px;margin:18px 0 0}.links a{font-size:14px;text-decoration:underline;display:flex;align-items:center;min-height:44px}.lede{margin:35px 0 8px;padding:0 0 0 22px;border-left:2px solid var(--accent);font-size:19px;line-height:1.6;color:var(--ink2)}.lede b{color:var(--ink)}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:28px 0 0}.stats div{padding:16px 0;border-top:1px solid var(--line)}.stats b{display:block;font-size:25px;font-weight:600;line-height:1.2;letter-spacing:-.02em}.stats span{font-size:13px;color:var(--muted);line-height:1.5;display:block;margin-top:8px}.study h2{font-size:26px;line-height:1.3;letter-spacing:-.02em;margin:60px 0 12px;scroll-margin-top:25px}.study h2 small{display:block;font-size:14px;color:var(--muted);font-weight:400;margin-bottom:10px;letter-spacing:0}.study p{margin:12px 0;color:var(--ink2)}figure{margin:25px 0 12px;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}figure svg{width:100%;height:auto;display:block}figcaption{font-size:13px;color:var(--muted);margin-top:15px;line-height:1.6}svg text{font-family:inherit;fill:var(--ink2)}.axis{stroke:var(--line)}.grid{stroke:var(--line2)}.bar{fill:var(--muted);opacity:.55}.bar-hi{fill:var(--accent)}.ci{stroke:var(--ink2);stroke-width:2}.null{stroke:var(--accent);stroke-dasharray:4 4;stroke-width:1.5}ol.protocol{padding-left:22px;margin:14px 0}ol.protocol li{margin:0 0 14px;color:var(--ink2)}ol.protocol b{color:var(--ink)}pre{background:var(--code);border:1px solid var(--line);border-radius:4px;padding:18px 20px;white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.7 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--ink)}details{margin:20px 0;color:var(--muted);font-size:14px}summary{cursor:pointer;min-height:44px;padding:10px 0;color:var(--ink)}footer{margin-top:64px;padding-top:25px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}
@media(max-width:1100px){.site-header{gap:25px}.site-header nav{gap:20px}.rank-hero{grid-template-columns:34% 1fr;gap:20px 2%;}.rank-heading h1{font-size:47px}.rank-key strong{font-size:72px}.rank-chart svg{height:480px}.rank-chart .chart-controls{align-items:start}.rank-heading>p br{display:none}}
@media(max-width:700px){html{scroll-padding-top:120px}.site-header{padding:0 20px;min-height:106px;flex-wrap:wrap;gap:0 20px}.wordmark{min-height:52px;display:flex;align-items:center;flex:1;font-size:17px}.theme-toggle{margin-left:auto;order:1}.site-header nav{order:2;flex-basis:100%;gap:24px}.site-header nav a{min-height:52px;font-size:14px}.rank-hero{display:flex;flex-direction:column;gap:28px;padding:29px 23px 30px}.rank-heading h1{font-size:39px;line-height:1.1}.rank-heading>p{font-size:16px;margin-top:23px}.rank-key{display:flex;align-items:center;gap:24px;margin:28px 0}.rank-key strong{font-size:65px}.rank-key strong span{font-size:34px}.rank-key p{font-size:13px;margin:0;line-height:1.55}.rank-key p br{display:none}.rank-chart{width:100%}.chart-scroll{margin:0 -4px}.rank-chart svg{height:530px;min-width:650px}.rank-titles{font-size:14px}.rank-model text{font-size:16px}.chart-controls{gap:12px;align-items:start;margin-top:15px}.chart-controls a,.chart-controls button{font-size:12px;min-height:44px}.chart-scroll-hint{display:block}.rank-selection{text-align:left;min-height:65px;font-size:13px;line-height:1.65}.hero-note{font-size:12px;margin:0;border-top:1px solid var(--line);padding-top:20px}.evidence-section{padding:36px 23px}.evidence-section>h2{font-size:28px}.evidence-links{gap:0;flex-direction:column}.evidence-links a{overflow-wrap:anywhere}.metric-controls{gap:8px}.metric-controls span{flex-basis:100%}.study{padding:42px 23px}.study>h2#study-title{font-size:29px}.sub{font-size:18px}.lede{font-size:17px;padding-left:17px}.stats{display:block}.stats div{padding:18px 0}.study h2{font-size:25px;margin-top:44px}.study figure{overflow-x:auto}.study figure svg{min-width:590px}.study figcaption{min-width:0}pre{font-size:12px;padding:16px}.rank-table th,.rank-table td{padding-left:10px;padding-right:10px}.links{gap:0 20px}}
@media(prefers-reduced-motion:no-preference){.rank-heading,.rank-chart{animation:arrive .5s ease-out both}.rank-chart{animation-delay:.08s}@keyframes arrive{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}}
@media(prefers-reduced-motion:reduce){.rank-model path{transition:none}}
