: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}.eyebrow{font-size:10px;font-weight:750;letter-spacing:1.65px;line-height:1.5;margin:0 0 19px}.serif{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-weight:400;letter-spacing:-.045em}.text-link{display:inline-flex;align-items:center;gap:16px;font-size:13px;font-weight:650;line-height:1.5}.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}.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 .eyebrow{font-size:8px;letter-spacing:1.3px;margin:0 0 7px;color:var(--muted)}.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}.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 .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)}.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}.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{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-panel>.button{align-self:start;margin-top:6px}.prose .fine-print{font-size:11px}.form-buttons{display:flex;gap:10px;margin-top:22px;flex-wrap:wrap}.admin-item .button{font-size:11px;padding:9px 13px;min-height:36px;flex-shrink:0}@media(max-width:1050px){.header-inner,.page-container,.site-footer{padding-left:30px;padding-right:30px}.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}}@media(max-width:760px){.section-heading h2{font-size:25px}.section-heading>.text-link{font-size:11px;gap:7px}.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}.footer-bottom{font-size:8px}}@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}.eyebrow{font-size:8px;letter-spacing:1.3px}.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}.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 .eyebrow{font-size:7px}.results{padding:14px 12px}.result-labels{font-size:9px}.vote-count{font-size:8px}.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}.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 .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}.pagination .button{font-size:10px;padding:10px 12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}.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: 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%}/* 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}.person-card .portrait{height:92px}.person-card .card-body .eyebrow{margin-bottom:4px;line-height:1.3}.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"] .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)}/* 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. */.person-profile,.voting-panel,.vote-actions,.page-container{min-width:0}.page-container{container-type:inline-size;container-name:lod-main}.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}.section-heading{min-width:0;max-width:100%}.eyebrow{min-width:0;max-width:100%;overflow-wrap:break-word}.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}}