:root{--paper:#f7f5ee;--white:#fffefa;--ink:#20241e;--muted:#686c62;--line:#dedfd5;--control:#8a8d82;--coral:#e85d47;--blue:#3f55c6;--green:#e4ebd9;--radius:15px;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:hover{text-decoration:underline;text-underline-offset:5px}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--blue);outline-offset:4px}button,a{touch-action:manipulation}input[type=checkbox]{accent-color:var(--ink)}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;z-index:100;top:-60px;left:16px;background:var(--ink);color:white;padding:12px 20px}.skip-link:focus{top:12px}.site-header{border-bottom:1px solid var(--line)}.header-inner{max-width:1280px;margin:auto;padding:25px 48px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font-size:30px;font-weight:850;letter-spacing:-1.9px;white-space:nowrap;display:inline-flex;align-items:center}.brand:hover{text-decoration:none}.brand-or{font-family:Georgia,serif;font-style:italic;font-size:20px;font-weight:400;margin:0 6px;letter-spacing:-1px}.brand-mark{font-size:33px;color:var(--coral);margin-left:7px;line-height:1}.main-nav{display:flex;gap:33px;font-size:14px;font-weight:600}.main-nav a{padding:10px 0;color:var(--muted)}.main-nav a[aria-current]{color:var(--ink);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:10px}.beta-badge{border:1px solid var(--ink);border-radius:4px;font-size:10px;font-weight:700;letter-spacing:1.5px;padding:8px 10px}.beta-badge span{margin-left:7px}.page-container{max-width:1280px;padding:0 48px;margin:0 auto;min-height:60vh}.hero{display:grid;grid-template-columns:1.15fr 1fr;gap:32px;align-items:center;padding:69px 0 58px;min-height:449px}.eyebrow{font-size:10px;font-weight:750;letter-spacing:1.65px;line-height:1.5;margin:0 0 19px}.status-dot{display:inline-block;width:7px;height:7px;background:var(--coral);border-radius:50%;margin-right:7px}.hero h1{font-size:clamp(45px,5.2vw,68px);line-height:1.04;letter-spacing:-3.8px;margin:0 0 24px;font-weight:750}.serif{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-weight:400;letter-spacing:-.045em}.coral-dot{color:var(--coral)}.hero-description{font-size:15px;line-height:1.75;color:var(--muted);margin-bottom:25px}.text-link{display:inline-flex;align-items:center;gap:16px;font-size:13px;font-weight:650;line-height:1.5}.hero-art{height:305px;position:relative;isolation:isolate}.opinion-note{position:absolute;border-radius:8px;width:203px;height:247px;padding:26px;display:flex;flex-direction:column;box-shadow:0 12px 20px #20241e0c}.opinion-note>span{font-size:9px;font-weight:700;letter-spacing:1.6px}.opinion-note strong{font-family:Georgia,serif;font-size:65px;font-weight:400;letter-spacing:-4px;margin-top:8px}.opinion-note b{font-family:Georgia,serif;font-size:64px;line-height:1;font-weight:400}.opinion-note small{font-size:11px;position:absolute;bottom:22px}.love-note{left:6%;top:6px;background:#f4a08c;transform:rotate(-12deg);z-index:1}.diss-note{right:0;top:45px;background:#bdc8f0;transform:rotate(10deg)}.art-star{position:absolute;bottom:0;left:25%;font-size:88px;line-height:1;color:var(--ink);transform:rotate(-12deg);z-index:2}.manifesto-strip{display:flex;align-items:center;justify-content:space-between;padding:17px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--line);font-size:11px;letter-spacing:.1px}.manifesto-strip span:before{content:'✦';margin-right:13px;color:var(--coral)}.manifesto-strip a{font-weight:600}.catalog-section{padding-top:50px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:28px}.section-heading .eyebrow{margin-bottom:9px}.section-heading h2{font-size:29px;letter-spacing:-1.1px;margin:0}.section-heading>.text-link{padding-bottom:4px}.search-form{display:flex;align-items:center;background:var(--white);border:1px solid var(--control);border-radius:8px;gap:13px;padding:8px 9px 8px 17px}.search-form>span{font-size:29px;line-height:1;color:var(--muted)}.search-form input{flex:1;min-width:0;border:0;background:none;padding:11px 0;font-size:14px;color:var(--ink)}.search-form input:focus{outline:none}.search-form:focus-within{outline:2px solid var(--blue);outline-offset:2px}.search-form button{background:var(--ink);border:0;color:var(--white);padding:13px 18px;border-radius:5px;font-size:12px;font-weight:600}.search-form button span{margin-left:18px}.category-tabs{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}.category-tabs a{padding:10px 18px;border:1px solid var(--line);border-radius:30px;font-size:12px;white-space:nowrap}.category-tabs a span{margin-right:4px}.category-tabs a[aria-current]{background:var(--ink);border-color:var(--ink);color:var(--white)}.category-tabs a:hover{text-decoration:none;border-color:var(--ink)}.results-heading{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin:26px 0 17px;align-items:center}.results-heading p{margin:0}.people-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:21px}.person-card{position:relative;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:transform .18s,box-shadow .18s}.person-card:hover{transform:translateY(-3px);box-shadow:0 8px 25px #20241e09}.card-link{display:block}.card-link:hover{text-decoration:none}.portrait{position:relative;overflow:hidden;height:172px;display:flex;align-items:center;justify-content:center;isolation:isolate}.portrait-actors{background:#e8ddd3;color:#745347}.portrait-musicians{background:#e6deee;color:#705685}.portrait-athletes{background:#dde5d4;color:#52634b}.portrait-creators{background:#dce5ed;color:#526778}.portrait:before{content:'';position:absolute;width:140px;height:140px;border:1px solid currentColor;border-radius:50%;opacity:.16;top:26px;left:calc(50% - 70px)}.portrait:after{content:'';position:absolute;width:205px;height:205px;border:1px solid currentColor;border-radius:50%;opacity:.12;top:-5px;left:calc(50% - 102px)}.portrait-initials{font-family:Georgia,serif;font-size:67px;letter-spacing:-6px;line-height:1;transform:translate(-5px,-3px);font-weight:400;z-index:1}.portrait-musicians .portrait-initials{font-style:italic}.portrait-creators .portrait-initials{font-family:Arial,sans-serif;font-weight:700;letter-spacing:-7px;font-size:61px}.portrait-athletes .portrait-initials{font-style:italic;font-weight:bold}.portrait-symbol{position:absolute;right:17px;top:13px;font-size:22px}.portrait-label{position:absolute;left:17px;bottom:13px;font-size:8px;text-transform:uppercase;letter-spacing:2px;opacity:.75}.portrait-orbit{position:absolute;bottom:-80px;right:-55px;width:200px;height:200px;border:25px solid currentColor;border-radius:50%;opacity:.06}.card-body{padding:18px 18px 0}.card-body .eyebrow{font-size:8px;letter-spacing:1.3px;margin:0 0 7px;color:var(--muted)}.card-body h3{font-size:19px;letter-spacing:-.6px;line-height:1.2;margin:0 0 7px}.card-description{font-size:11px;color:var(--muted);line-height:1.5;margin:0;min-height:34px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.results{padding:18px}.result-labels{display:flex;justify-content:space-between;font-size:10px;gap:8px;line-height:1.6}.result-labels strong{font-weight:650}.love-text{color:#b73b2b}.diss-text{color:#344aab}.vote-meter{display:block;appearance:none;-webkit-appearance:none;width:100%;height:6px;margin:9px 0 9px;border:0;background:var(--blue);border-radius:9px;overflow:hidden}.vote-meter::-webkit-meter-bar{background:var(--blue);border:0;height:6px;border-radius:9px}.vote-meter::-webkit-meter-optimum-value{background:var(--coral);border-radius:0}.vote-meter::-moz-meter-bar{background:var(--coral)}.vote-meter.is-empty,.vote-meter.is-empty::-webkit-meter-bar{background:var(--line)}.vote-count{font-size:9px;color:var(--muted);margin:0;text-align:center}.card-vote-link{display:flex;justify-content:space-between;padding:12px 18px;border-top:1px solid #ecece4;font-size:10px;font-weight:650}.card-vote-link:hover{background:var(--paper);text-decoration:none}.pagination{display:grid;grid-template-columns:1fr auto 1fr;gap:15px;align-items:center;margin:32px 0;font-size:12px}.pagination>a:last-child{justify-self:end}.pagination>a:first-child{justify-self:start}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:13px 21px;border:1px solid var(--ink);border-radius:6px;background:var(--ink);color:var(--white);font-size:12px;font-weight:600;line-height:1.35;min-height:43px}.button:hover{text-decoration:none;filter:brightness(1.15)}.button-secondary{background:transparent;color:var(--ink);border-color:var(--control)}.button-secondary:hover{background:var(--white)}.bottom-callout{display:flex;gap:27px;align-items:center;background:#e9eddf;border-radius:10px;margin:56px 0;padding:28px}.bottom-callout>span{font-size:29px;white-space:nowrap;letter-spacing:6px}.bottom-callout>div{flex:1}.bottom-callout h2{font-size:18px;letter-spacing:-.5px;margin:0 0 7px}.bottom-callout p{font-size:12px;color:var(--muted);margin:0}.bottom-callout .button{border-color:var(--muted);white-space:nowrap;font-size:11px}.site-footer{border-top:1px solid var(--line);max-width:1280px;padding:34px 48px 25px;margin:0 auto}.footer-top{display:flex;align-items:center;gap:24px}.footer-top .brand{font-size:24px}.footer-top .brand-or{font-size:16px}.footer-top .brand-mark{font-size:26px}.footer-top>p{font-size:11px;color:var(--muted);flex:1}.footer-top nav{display:flex;gap:23px;font-size:11px}.footer-bottom{display:flex;justify-content:space-between;gap:20px;font-size:9px;line-height:1.6;color:var(--muted);margin-top:29px;padding-top:21px;border-top:1px solid var(--line)}.page-intro{padding:64px 0 34px;max-width:900px}.page-intro h1,.prose h1,.empty-state h1{font-size:clamp(38px,5vw,58px);letter-spacing:-2.5px;line-height:1.08;margin:0 0 22px}.page-intro>p:last-child{color:var(--muted);font-size:15px;line-height:1.7}.page-intro.compact{padding-bottom:10px}.ranking-section{padding-top:0;padding-bottom:55px}.ranking-tabs{display:flex;border-bottom:1px solid var(--line);gap:32px}.ranking-tabs a{font-size:15px;font-weight:600;padding:17px 0}.ranking-tabs a[aria-current]{border-bottom:3px solid var(--coral)}.ranking-explanation{font-size:12px;line-height:1.7;color:var(--muted);margin:18px 0 27px;max-width:730px}.ranking-section .people-grid{margin-top:27px}.rank-number{position:absolute;z-index:3;top:13px;left:13px;background:var(--white);border-radius:50%;width:30px;height:30px;display:grid;place-items:center;font-size:12px;font-weight:700}.empty-state{text-align:center;padding:60px 20px;border:1px dashed var(--line);border-radius:12px;background:#fffefa50}.empty-state h3{font-size:24px;letter-spacing:-.7px}.empty-state p{color:var(--muted);font-size:14px;line-height:1.7;max-width:520px;margin:0 auto 25px}.empty-icon{color:var(--coral);font-size:48px}.full-empty{margin:55px 0;border:0;background:none;padding:65px 20px 90px}.breadcrumbs{display:flex;gap:13px;font-size:11px;color:var(--muted);padding:32px 0}.person-detail{display:grid;grid-template-columns:1fr 1fr;gap:65px;max-width:1000px;margin:12px auto 55px}.portrait-large{height:270px;border-radius:13px;margin-bottom:28px}.portrait-large .portrait-initials{font-size:110px}.portrait-large:before{width:230px;height:230px;left:calc(50% - 115px);top:30px}.portrait-large:after{width:300px;height:300px;left:calc(50% - 150px);top:-5px}.portrait-large .portrait-symbol{font-size:42px;right:27px;top:19px}.portrait-large .portrait-label{left:27px;bottom:22px;font-size:10px}.person-profile>.eyebrow{margin:0 0 12px}.person-profile h1{font-size:46px;letter-spacing:-2px;margin:0 0 16px;line-height:1.05;overflow-wrap:break-word;hyphens:auto}.person-bio{font-size:15px;line-height:1.7;color:var(--muted);margin:0 0 16px}.source-link{font-size:11px}.fine-print{font-size:11px;line-height:1.65;color:var(--muted)}.voting-panel{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:32px;align-self:start}.voting-panel h2{font-size:44px;letter-spacing:-2px;margin:0 0 14px}.muted{color:var(--muted);font-size:14px;line-height:1.6}.voting-panel>.results{padding:23px 0}.voting-panel .result-labels{font-size:15px}.voting-panel .vote-meter{height:9px;margin:12px 0}.voting-panel .vote-meter::-webkit-meter-bar{height:9px}.voting-panel .vote-count{font-size:11px}.vote-actions{display:flex;gap:12px}.vote-button{flex:1;font-size:17px;min-height:58px}.vote-button span{font-size:24px}.vote-love{background:#fce3dd;color:#a83626;border-color:#efb8ab}.vote-diss{background:#e5e9fb;color:#344aab;border-color:#c1cafa}.vote-love[aria-pressed=true]{background:#b73b2b;color:var(--white);border-color:#b73b2b;box-shadow:0 0 0 3px #b73b2b25}.vote-diss[aria-pressed=true]{background:var(--blue);color:white;border-color:var(--blue);box-shadow:0 0 0 3px #3f55c625}.consent{display:flex;gap:10px;align-items:start;margin:22px 0;font-size:11px;line-height:1.6;color:var(--muted)}.consent input{margin:3px 0 0;width:17px;height:17px;flex-shrink:0}.consent a,.voting-note a,.prose a,.form-aside a{text-decoration:underline;text-underline-offset:3px}.form-status{font-size:12px;line-height:1.6;min-height:19px;overflow-wrap:anywhere}.form-status[data-state=error]{color:#a52d20}.form-status[data-state=success]{color:#3c6436}.text-button{border:0;background:none;color:var(--muted);font-size:12px;text-decoration:underline;text-underline-offset:4px;padding:9px 0;min-height:44px}.voting-note{border-top:1px solid var(--line);padding-top:18px;margin-top:18px;display:flex;gap:10px;color:var(--muted);font-size:11px;line-height:1.65}.voting-note p{margin:0}.detail-footer{border-top:1px solid var(--line);padding:24px 0 40px;display:flex;align-items:center;justify-content:space-between;gap:20px;color:var(--muted);font-size:12px}.form-layout{display:grid;grid-template-columns:1.25fr 1fr;gap:75px;max-width:1000px;padding-bottom:65px}.form-panel{border:1px solid var(--line);border-radius:12px;background:var(--white);padding:30px;display:flex;flex-direction:column;align-items:stretch}.form-panel>label:not(.consent):not(.checkbox-row){font-size:12px;font-weight:600;margin:18px 0 9px}.form-panel>label:first-child{margin-top:0!important}.optional{font-size:11px;font-weight:400;color:var(--muted)}.form-panel input:not([type=checkbox]),.form-panel textarea,.form-panel select{background:var(--paper);border:1px solid var(--control);border-radius:5px;padding:12px;font-size:14px;color:var(--ink);width:100%;min-width:0}.form-panel textarea{resize:vertical;line-height:1.6}.form-panel>.button{align-self:start;margin-top:6px}.form-aside{padding-top:20px}.aside-symbol{color:var(--coral);font-size:65px}.form-aside h2{font-size:30px;letter-spacing:-1px;max-width:320px}.form-aside p{color:var(--muted);line-height:1.8;font-size:13px}.prose{max-width:740px;margin:64px auto 75px}.prose .lead{font-size:20px;line-height:1.6;color:var(--muted);margin:25px 0}.prose h2{font-size:24px;letter-spacing:-.6px;margin:36px 0 16px}.prose p{font-size:14px;line-height:1.9}.prose .fine-print{font-size:11px}.narrow{max-width:460px;margin:15px 0 60px}.form-panel h2,.form-panel h3{margin:0 0 15px;letter-spacing:-.6px}.admin-toolbar{display:flex;align-items:center;justify-content:space-between;margin:20px 0}.admin-columns{display:grid;grid-template-columns:1fr 1fr;gap:35px}.checkbox-row{display:flex;align-items:center;gap:9px;font-size:13px;margin-top:16px}.checkbox-row input{width:17px;height:17px}.form-buttons{display:flex;gap:10px;margin-top:22px;flex-wrap:wrap}.admin-list{display:grid;gap:10px}.admin-item{background:var(--white);border:1px solid var(--line);border-radius:7px;padding:17px;display:flex;align-items:center;gap:15px;justify-content:space-between}.admin-item h4{margin:0 0 7px;font-size:14px}.admin-item p{font-size:11px;color:var(--muted);line-height:1.7;margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.admin-item .button{font-size:11px;padding:9px 13px;min-height:36px;flex-shrink:0}.reports-section{margin:40px 0 55px}.report-item{align-items:start}.report-item>div{min-width:0}.report-item p{margin-bottom:9px}.report-item .report-message{font-size:13px;color:var(--ink)}
@media(min-width:1400px){.hero h1{font-size:70px}.hero-art{margin-right:20px}.love-note{left:13%}.diss-note{right:3%}}@media(max-width:1050px){.header-inner,.page-container,.site-footer{padding-left:30px;padding-right:30px}.hero{gap:15px}.hero h1{font-size:55px}.opinion-note{width:170px;height:225px;padding:22px}.opinion-note strong{font-size:56px}.love-note{left:4%;top:16px}.diss-note{right:2%;top:53px}.art-star{left:21%;bottom:9px}.people-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.footer-top{flex-wrap:wrap}.footer-top nav{margin-left:auto}.footer-bottom>span:last-child{display:none}.person-detail{gap:30px}.voting-panel{padding:25px}.form-layout{gap:40px}}@media(max-width:760px){.hero{grid-template-columns:1fr;position:relative;padding:44px 0 36px;min-height:0}.hero h1{font-size:60px;max-width:580px}.hero-art{display:none}.hero-description{font-size:14px}.manifesto-strip{font-size:10px;gap:15px;line-height:1.6}.manifesto-strip span:nth-child(2){display:none}.catalog-section{padding-top:35px}.people-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.section-heading h2{font-size:25px}.section-heading>.text-link{font-size:11px;gap:7px}.bottom-callout{padding:24px;gap:17px;flex-wrap:wrap}.bottom-callout>span{font-size:23px}.bottom-callout>.button{margin-left:65px}.footer-top>p{display:none}.footer-top nav{gap:17px}.person-detail{grid-template-columns:1fr;max-width:540px;margin-top:0;gap:25px}.portrait-large{height:250px}.person-profile h1{font-size:40px}.person-detail .voting-panel{padding:28px}.detail-footer{align-items:start;font-size:11px}.detail-footer p{margin:0;max-width:230px}.detail-footer a{font-size:11px;white-space:nowrap}.form-layout,.admin-columns{grid-template-columns:1fr;gap:20px}.form-aside{padding:0}.page-intro{padding-top:45px}.prose{margin:45px auto}.footer-bottom{font-size:8px}.ranking-tabs{gap:27px}.ranking-tabs a{font-size:13px}}@media(max-width:480px){.header-inner,.page-container,.site-footer{padding-left:20px;padding-right:20px}.header-inner{padding-top:20px;padding-bottom:20px;gap:16px}.brand{font-size:26px}.brand-or{font-size:17px;margin:0 5px}.brand-mark{font-size:27px;margin-left:5px}.main-nav{gap:16px;font-size:11px}.beta-badge{display:none}.hero h1{font-size:49px;letter-spacing:-2.8px}.eyebrow{font-size:8px;letter-spacing:1.3px}.hero-description br{display:none}.hero-description{max-width:300px}.section-heading{align-items:start;gap:12px;margin-bottom:22px}.section-heading h2{font-size:23px;max-width:190px}.section-heading>.text-link{max-width:90px;text-align:right;line-height:1.6}.search-form{gap:8px;padding-left:12px}.search-form button{padding:12px 14px}.search-form button span{display:none}.category-tabs{gap:7px;margin-top:16px}.category-tabs a{font-size:10px;padding:9px 12px}.category-tabs a span{margin-right:0}.results-heading{font-size:10px;gap:12px;align-items:start;line-height:1.5}.results-heading>span{white-space:nowrap}.people-grid{gap:12px}.portrait{height:140px}.portrait-initials{font-size:53px}.portrait-creators .portrait-initials{font-size:50px}.portrait-symbol{font-size:18px;right:11px;top:11px}.portrait-label{left:12px;bottom:11px;font-size:7px;letter-spacing:1.4px}.portrait:before{width:110px;height:110px;left:calc(50% - 55px);top:18px}.portrait:after{width:165px;height:165px;left:calc(50% - 82px);top:-8px}.card-body{padding:14px 12px 0}.card-body h3{font-size:16px;min-height:38px;letter-spacing:-.5px}.card-body .eyebrow{font-size:7px}.card-description{font-size:10px;min-height:30px}.results{padding:14px 12px}.result-labels{font-size:9px}.vote-count{font-size:8px}.card-vote-link{padding:12px;font-size:9px}.bottom-callout{margin:35px 0;padding:21px 18px}.bottom-callout>span{display:none}.bottom-callout h2{font-size:17px;line-height:1.4}.bottom-callout p{font-size:11px;line-height:1.6}.bottom-callout>.button{margin:0}.footer-top{gap:20px}.footer-top nav{width:100%;justify-content:space-between;gap:10px;font-size:10px}.footer-bottom{flex-direction:column;gap:8px;margin-top:23px;padding-top:18px}.page-intro h1,.prose h1,.empty-state h1{font-size:40px;letter-spacing:-1.7px}.page-intro>p:last-child{font-size:13px}.ranking-tabs{gap:23px}.ranking-tabs a{font-size:12px}.ranking-explanation{font-size:11px}.ranking-section .people-grid{margin-top:20px}.portrait-large{height:230px}.portrait-large .portrait-initials{font-size:90px}.portrait-large:before{width:195px;height:195px;left:calc(50% - 97px);top:24px}.portrait-large:after{width:255px;height:255px;left:calc(50% - 127px);top:-6px}.person-detail .voting-panel{padding:23px}.voting-panel h2{font-size:40px}.person-profile h1{font-size:37px}.form-panel{padding:22px}.form-panel .consent{font-size:10px}.consent{margin:8px 0;line-height:1.5}.vote-actions{gap:8px}body[data-page="person"] .breadcrumbs{padding:16px 0}.person-detail .voting-panel>.results{padding:12px 0}.prose .lead{font-size:18px}.prose p{font-size:13px}.prose h2{font-size:22px}.pagination{font-size:10px;gap:7px}.pagination .button{font-size:10px;padding:10px 12px}.admin-toolbar h2{font-size:20px}.admin-item{gap:10px;padding:13px}.report-item{flex-direction:column}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
.report-filter{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.report-filter select{padding:9px;border:1px solid var(--control);border-radius:5px;background:var(--white);color:var(--ink);font:inherit}@media(max-width:480px){.reports-section .admin-toolbar{align-items:start;flex-direction:column;gap:10px}.reports-section .admin-toolbar h2{margin-bottom:0}}
.portrait-fallback{display:contents}
.portrait.has-image .portrait-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 25%;z-index:2;background:transparent}
.portrait.has-image.image-failed .portrait-image{display:none}
.portrait-credit{position:absolute;z-index:3;top:12px;left:12px;font-size:9px;font-weight:750;letter-spacing:1.2px;text-transform:uppercase;padding:4px 8px;border-radius:999px;background:#20241ecc;color:#fff;text-decoration:none}
.portrait-credit:hover,.portrait-credit:focus-visible{background:#20241e;text-decoration:underline}
.person-profile{position:relative}
.person-profile .portrait-credit{top:16px;left:16px}
/* CAT-F18: /image-credits renders full Wikimedia Commons URLs as link text. Unbroken URLs cannot wrap, so at 390px they
   pushed document.scrollWidth past the viewport. Allow breaks inside credit text and links instead of clipping or scrolling. */
.image-credits .prose{min-width:0}.image-credits .prose p{overflow-wrap:anywhere;word-break:break-word}.image-credits .prose a{overflow-wrap:anywhere;word-break:break-word}
/* CAT-F18: at 320px the shared header (brand + three nav links) is wider than the 280px content box, which also fails
   the credits mobile check. Let the header wrap below 360px; desktop and 390px layouts are unchanged. */
@media(max-width:360px){.header-inner{flex-wrap:wrap;gap:8px 12px}.main-nav{gap:14px}}
/* CAT-F24: the detail frame was 270px tall and column-wide with object-fit cover, which cropped the chin from the accepted
   640x640 headshots. When a real image is present, give the large frame the source's 1:1 aspect (capped at 320px so the
   profile column stays compact) and show the whole square with contain. Initials-only frames and catalog cards keep the
   existing layout, and the mobile height overrides below 760px/480px are neutralised by height:auto here. */
.portrait-large.has-image{height:auto;aspect-ratio:1/1;width:100%;max-width:320px}
.portrait-large.has-image .portrait-image{object-fit:contain;object-position:50% 50%}
/* S03: the suggestion list is an optional layer over the existing GET search form. */
.search-form{position:relative;z-index:4}
.search-field{position:relative;flex:1;min-width:0}
.search-field input{width:100%}
.search-suggestions{position:absolute;z-index:20;top:calc(100% + 8px);left:-10px;right:-10px;padding:6px;background:var(--white);border:1px solid var(--control);border-radius:8px;box-shadow:0 10px 25px #20241e18;max-height:280px;overflow:auto}
.search-suggestion{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 11px;border-radius:5px;font-size:13px}
.search-suggestion:hover,.search-suggestion[aria-selected=true]{background:var(--paper);text-decoration:none}
.search-suggestion-name{font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.search-suggestion-category{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:1px;white-space:nowrap}
.search-suggestion-empty{padding:12px 11px;color:var(--muted);font-size:12px;line-height:1.5}
@media(max-width:480px){.search-suggestions{left:-5px;right:-5px}.search-suggestion{padding:11px 9px}}
/* EF05: the quiet surface removes duplicated promotion while preserving the catalog and its controls. */
body[data-quiet-ui="true"] .quiet-hero{grid-template-columns:1fr;min-height:0;padding:28px 0 0}
/* EF49: the quiet hero is split into the masthead (eyebrow + h1, .quiet-hero) and the sub-copy
   (.quiet-hero-copy: description + "Find your people"). On desktop the two read as one hero block
   (same rhythm as before: h1 margin 24 + copy, padding-bottom 16). */
body[data-quiet-ui="true"] .quiet-hero-copy{min-width:0;max-width:100%;padding:0 0 16px}
body[data-quiet-ui="true"] .quiet-hero-copy .hero-description{max-width:38rem;margin-top:0}
body[data-quiet-ui="true"] .quiet-hero .hero-art{display:none}
/* EF42 (superseded by EF49 below): after EF20 raised category tabs to 44px, the first portrait dropped
   below the 390x844 fold (865.4); tightening the quiet hero padding and results-heading margin brought
   the portrait back (828.4) but not the name (898) or the vote link (1024). */
/* EF49: on phones the first person (portrait, name, vote link) must sit inside the initial viewport
   (390x844; 375x667 reaches the name). Spacing alone could not do it (EF42: name 898, vote link 1024),
   so the quiet home is re-flowed at <=480px without hiding or rewording anything:
   - masthead: shorter h1 and tighter rhythm;
   - the hero sub-copy and the results caption move below the people grid (flex order; DOM order and
     the desktop layout are unchanged);
   - section heading in one line; tabs keep min-height 44px and still wrap so every tab stays visible. */
@media(max-width:480px){
  body[data-quiet-ui="true"][data-page="home"] .page-container{display:flex;flex-direction:column}
  body[data-quiet-ui="true"] .quiet-hero{padding:12px 0 0}
  body[data-quiet-ui="true"] .quiet-hero .eyebrow{margin-bottom:8px}
  body[data-quiet-ui="true"] .quiet-hero h1{font-size:40px;letter-spacing:-2.2px;margin-bottom:8px}
  body[data-quiet-ui="true"] .quiet-hero-copy{order:1;padding:24px 0 8px}
  body[data-quiet-ui="true"] .quiet-hero-copy .hero-description{margin:0 0 12px}
  body[data-quiet-ui="true"] .quiet-hero-copy .text-link span{display:inline-block;transform:rotate(180deg)}
  body[data-quiet-ui="true"] #explore{display:flex;flex-direction:column;padding-top:12px}
  body[data-quiet-ui="true"] #explore .section-heading{margin-bottom:12px}
  body[data-quiet-ui="true"] #explore .section-heading h2{font-size:20px;max-width:none}
  body[data-quiet-ui="true"] #explore .category-tabs{margin-top:12px}
  body[data-quiet-ui="true"] #explore .results-heading{order:1;margin:12px 0 0}
  body[data-quiet-ui="true"] #explore .pagination{order:2}
}
/* EF61: at <=400px (375x667 iPhone SE class) the first person's vote link (home) and the consent row plus
   both vote buttons (person page) must sit inside the initial viewport. EF49/EF59 exhausted hero, tab and
   panel spacing; the remaining height is the header, the catalog card and the profile block. Nothing is
   hidden or reworded, text stays at its <=480px sizes, tap targets stay >=44px (vote link 44, buttons 60).
   - header: 8px vertical padding instead of 20px (all pages, 44px tall);
   - catalog card: 92px landscape portrait instead of 140px, tighter body/results padding and leading,
     name min-height back to the desktop value (none) so a one-line name has 20px+ of fold spare and a
     two-line name still fits at 375x667;
   - person profile: a 7rem square portrait floated beside the category/name/fine print (DOM order
     unchanged). The image-credit pill (up to 136px wide, wider than the portrait) and the gallery
     "View gallery" button float under the portrait in the same left column (the pill is sized to the
     column, letter-spacing 0, so the text beside the floats keeps one left edge) instead of over the
     small image. The text blocks are flow-roots with min-width min(9rem,100%): beside the portrait when at
     least 9rem is free (320px and up), below all the floats when it is not (320px at zoom 200% =
     120px content; person.css cannot carry @container rules and media queries do not see root zoom),
     so the name is never squeezed to zero width and nothing overflows horizontally;
     breadcrumb, profile/panel gap and panel padding tightened.
   EF71: .main-nav a hit box is >=44px via padding + matching negative margin so the
     header band and line count stay as measured; row-gap 12px (higher specificity
     than community.css gap:8px) keeps wrapped rows from overlapping; .ranking-tabs
     wrap so 320 CSS-zoom 200% does not pan. */
@media(max-width:400px){
  .header-inner{padding-top:8px;padding-bottom:8px}
  .header-inner .main-nav{row-gap:12px}
  .main-nav a{display:inline-flex;align-items:center;min-height:44px;padding-top:6px;padding-bottom:6px;margin-top:-6px;margin-bottom:-6px}
  .ranking-tabs{flex-wrap:wrap;max-width:100%}
  .person-card .portrait{height:92px}
  .person-card .card-body{padding:8px 12px 0}
  .person-card .card-body .eyebrow{margin-bottom:4px;line-height:1.3}
  .person-card .card-body h3{margin-bottom:4px;min-height:0;line-height:1.15}
  .person-card .results{padding:8px 12px}
  .person-card .result-labels{line-height:1.4}
  .person-card .vote-meter{margin:6px 0}
  .person-card .vote-count{line-height:1.3}
  body[data-page="person"] .breadcrumbs{padding:10px 0}
  .person-profile{display:flow-root}
  .person-profile>.portrait-large{float:left;width:7rem;height:7rem;max-width:7rem;margin:0 12px 8px 0}
  .person-profile>.portrait-credit{position:static;float:left;clear:left;width:7rem;max-width:100%;padding:4px;text-align:center;letter-spacing:0;white-space:nowrap;margin:0 12px 8px 0}
  .person-profile>.person-gallery{float:left;clear:left;width:7rem;margin:0 12px 8px 0}
  .person-profile .person-gallery-open{margin:0}
  .person-profile>.eyebrow,.person-profile h1,.person-profile .disambiguation,.person-profile .fine-print{display:flow-root;min-width:min(9rem,100%);overflow-wrap:anywhere}
  .person-profile .portrait-large .portrait-initials{font-size:44px;letter-spacing:-4px;transform:translate(-2px,-2px)}
  .person-profile .portrait-large:before{width:88px;height:88px;left:calc(50% - 44px);top:12px}
  .person-profile .portrait-large:after{width:124px;height:124px;left:calc(50% - 62px);top:-6px}
  .person-profile .portrait-large .portrait-symbol{font-size:18px;right:8px;top:6px}
  .person-profile .portrait-large .portrait-label{left:8px;bottom:6px;font-size:8px;letter-spacing:1.4px}
  .person-profile .portrait-large .portrait-orbit{width:84px;height:84px;border-width:10px;bottom:-33px;right:-23px}
  .person-profile>.eyebrow{margin-bottom:8px}
  .person-profile h1{font-size:30px;letter-spacing:-1.4px;margin-bottom:8px;overflow-wrap:break-word;hyphens:auto}
  .person-profile .fine-print{margin:0}
  .person-detail{gap:16px}
  .person-detail .voting-panel{padding:16px}
}
body[data-quiet-ui="true"] .catalog-section{padding-top:28px}
body[data-quiet-ui="true"] .quiet-voting-panel{padding-top:25px}
body[data-quiet-ui="true"] .voting-info{display:block;margin-top:18px;padding-top:0;border-top:1px solid var(--line);font-size:12px;line-height:1.65}
body[data-quiet-ui="true"] .voting-info summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:650;color:var(--ink)}
body[data-quiet-ui="true"] .voting-info p{margin:0 0 4px;color:var(--muted)}
body[data-quiet-ui="true"] .ranking-explanation-details{display:block;margin:12px 0 20px;padding:0;color:var(--muted)}
body[data-quiet-ui="true"] .ranking-explanation-details summary{cursor:pointer;min-height:44px;display:flex;align-items:center;color:var(--ink);font-weight:650}
body[data-quiet-ui="true"] .ranking-explanation-details p{margin:0 0 8px;line-height:1.7}
.version-note{margin:0 auto 55px;max-width:740px}
/* SH02: latest ranking snapshots are a bounded, public home-page surface. */
.growth-share-recent{padding-top:32px;padding-bottom:20px}
.growth-share-recent-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.growth-share-recent-card{border:1px solid var(--line);border-radius:14px;padding:18px;background:var(--white)}
.growth-share-recent-card h3{margin:7px 0;font-size:1.15rem;line-height:1.25}
.growth-share-recent-card h3 a{color:var(--ink);text-decoration:none}
.growth-share-recent-card h3 a:hover{text-decoration:underline}
.growth-share-recent-card p:not(.eyebrow){margin:0 0 14px;color:var(--muted);font-size:.9rem}
@media(max-width:700px){.growth-share-recent-list{grid-template-columns:1fr}}

/* Keep recovery choices distinct when they wrap on narrow screens. */
.empty-state-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}

/* EF20: measured 320px gaps. Keep names wrapping, primary taps at 44px, and card
   focus rings inside overflow:hidden so rounded portraits stay clipped. Credits stay compact. */
.card-body,.card-link,.person-card,.person-profile,.voting-panel,.vote-actions,.page-container{min-width:0}
.page-container{container-type:inline-size;container-name:lod-main}
.card-body h3{overflow-wrap:break-word}
.search-form button{min-height:44px;min-width:44px}
.category-tabs a{display:inline-flex;align-items:center;min-height:44px}
.card-vote-link{min-height:44px;align-items:center}
.button{min-height:44px}
.person-card .card-link:focus-visible,.person-card .card-vote-link:focus-visible{outline-offset:-4px}
.consent{min-height:44px;align-items:center}
.hero,.hero>div,.quiet-hero,.catalog-section,.section-heading,.manifesto-strip,.bottom-callout{min-width:0;max-width:100%}
.hero h1,.hero-description,.eyebrow,.coral-dot{min-width:0;max-width:100%;overflow-wrap:break-word}
.manifesto-strip{flex-wrap:wrap}
.manifesto-strip span,.manifesto-strip a,.bottom-callout,.bottom-callout p,.bottom-callout h2{min-width:0;overflow-wrap:anywhere}
.section-heading{flex-wrap:wrap;min-width:0}
.section-heading>.text-link,.text-link{min-width:0;max-width:100%;flex-wrap:wrap}
.bottom-callout .button{white-space:normal;max-width:100%}
@media(max-width:760px){
  .vote-actions{flex-direction:column;align-items:stretch;width:100%;min-width:0}
  .vote-button{width:100%;min-width:0;flex:none}
  .detail-footer,.detail-footer-links,.footer-top nav{min-width:0;max-width:100%}
  .detail-footer{flex-wrap:wrap}
  .detail-footer a{white-space:normal;overflow-wrap:anywhere}
  .footer-top nav{flex-wrap:wrap}
}
@media(max-width:360px){
  .header-inner,.main-nav{min-width:0;width:100%}
  .main-nav{flex-wrap:wrap}
  .main-nav a{flex:1 1 40%;min-width:0}
}
@media(max-width:480px){.people-grid{grid-template-columns:repeat(auto-fit,minmax(8rem,1fr))}}
@container lod-main (max-width:240px){
  .people-grid{grid-template-columns:minmax(0,1fr)}
  .hero h1{font-size:28px;letter-spacing:-1px}
  .hero-description{font-size:14px}
}
