/* Article polish: refs. Visual finish only. */
html[data-polish] .refs{
  --rf-num:28px;
  --rf-badge:20px;
  --rf-meta:20px;
  --rf-rule:var(--line-2);
  --rf-sep:.4em;
  --rf-sep-sp:calc(var(--rf-sep) - .2675em);
  margin-top:var(--s16);padding-top:var(--s10);
  border-top:1px solid var(--line)}
html[data-polish] .refhead{margin-bottom:0}
html[data-polish] .refh{margin:0 0 var(--s3);line-height:var(--lh-head);color:var(--ink)}
html[data-polish] .art .refl{margin:0;max-width:56ch;font-size:var(--fs-base);
  line-height:1.55;color:var(--ink-2);text-wrap:pretty}
html[data-polish] .reffilters{--rf-gap-max:var(--s4);position:relative;display:flex;
  flex-wrap:wrap;gap:0 var(--rf-gap,var(--rf-gap-max));
  margin:var(--s5) 0 0 calc(-1 * var(--s1));padding:0}
html[data-polish] .reffilters::before{content:"";position:absolute;left:var(--s1);right:0;
  bottom:0;height:1px;background:var(--rf-track,var(--line-2));pointer-events:none}
html[data-polish] .reffilters.polish-wrapped::before{position:static;flex:0 0 100%;
  height:0;background:none;order:1}
html[data-polish] .reffilters.polish-wrapped > .reffilter:nth-child(n+4){order:2}
html[data-polish] .reffilter{position:relative;display:inline-flex;align-items:center;
  gap:5px;height:40px;margin:0;padding:0 var(--s1);border:0;border-radius:6px;
  background:transparent;color:var(--ink-3);font-family:var(--sans);
  font-size:var(--fs-sm);font-weight:500;line-height:1;letter-spacing:0;
  cursor:pointer;-webkit-user-select:none;user-select:none;
  transition:color var(--d-2) var(--e-out),transform var(--d-1) var(--e-out)}
html[data-polish] .reffilter span{color:var(--ink-4);font-weight:500;
  font-variant-numeric:tabular-nums;transition:color var(--d-2) var(--e-out)}
html[data-polish] .reffilter:hover{border-color:transparent;color:var(--ink-2)}
html[data-polish] .reffilter:hover span{color:var(--ink-3)}
html[data-polish] .reffilter.on{border-color:transparent;background:transparent;
  color:var(--ink);font-weight:500}
html[data-polish] .reffilter.on span{color:var(--ink-3)}
html[data-polish] .reffilter.polish-zero:not(.on),
html[data-polish] .reffilter.polish-zero:not(.on) span{color:var(--ink-4)}
html[data-polish] .reffilter.polish-zero:not(.on):hover,
html[data-polish] .reffilter.polish-zero:not(.on):hover span{color:var(--ink-3)}
html[data-polish] .reffilter:active{transform:scale(.97)}
html[data-polish] .reffilter:focus-visible{outline:none;box-shadow:var(--focus);
  border-radius:6px}
html[data-polish] .reffilter.on::after{content:"";position:absolute;
  left:var(--s1);right:var(--s1);bottom:0;height:2px;border-radius:2px 2px 0 0;
  background:var(--accent)}
html[data-polish] .reffilters.polish-bar .reffilter.on::after{content:none}
html[data-polish] .polish-refbar{position:absolute;left:0;top:0;height:2px;
  width:var(--rb-w,0px);transform:translate3d(var(--rb-x,0px),var(--rb-y,0px),0);
  border-radius:2px 2px 0 0;background:var(--accent);pointer-events:none;
  opacity:0}
html[data-polish] .reffilters.polish-bar .polish-refbar{opacity:1}
html[data-polish] .reffilters.polish-anim .polish-refbar{
  transition:transform var(--d-4) var(--e-glide),width var(--d-4) var(--e-glide),
    opacity var(--d-2) var(--e-out)}
html[data-polish] .reflist{margin:0;padding:0}
html[data-polish] .refitem{position:relative;isolation:isolate;gap:0;
  padding:var(--s6) 0;border-top:0;border-radius:0;background:transparent;
  transition:none;animation:polishRefIn var(--d-3) var(--e-out) both}
html[data-polish] .refitem:not([hidden]) ~ .refitem:not([hidden]){
  border-top:1px solid var(--rf-rule)}
html[data-polish] .reflist:not(:has(> .refitem:not([hidden]))){min-height:var(--s8)}
@keyframes polishRefIn{
  from{opacity:0;transform:translateY(3px)}
  to{opacity:1;transform:none}
}
html[data-polish] .refn{flex:0 0 var(--rf-num);width:var(--rf-num);padding:0;
  font-size:var(--fs-sm);font-weight:500;line-height:var(--rf-meta);
  color:var(--ink-4);font-variant-numeric:tabular-nums;letter-spacing:0}
html[data-polish] .refb{flex:1 1 auto;min-width:0}
html[data-polish] .refmeta{display:block;position:relative;
  min-height:var(--rf-meta);margin:0 0 6px;
  padding-left:calc(var(--rf-badge) + var(--s2));
  font-size:var(--fs-xs);line-height:var(--rf-meta);color:var(--ink-3)}
html[data-polish] .refmeta .srcbadge{position:absolute;left:0;top:0;
  width:var(--rf-badge);height:var(--rf-badge);margin:0;border:0;
  font-size:8px;letter-spacing:.02em;box-shadow:inset 0 0 0 1px rgba(19,16,17,.06)}
html[data-polish] .refmeta .srcbadge img{border-radius:50%}
html[data-polish] .refo{font-size:var(--fs-sm);font-weight:600;color:var(--ink);
  letter-spacing:var(--tr-snug)}
html[data-polish] .refkind,
html[data-polish] .refkind.doc,
html[data-polish] .refkind.reg,
html[data-polish] .refkind.ann{display:inline;padding:0;border-radius:0;
  background:transparent;color:var(--ink-3);font-size:var(--fs-xs);
  font-weight:500;letter-spacing:0;text-transform:none;white-space:nowrap}
html[data-polish] .refkind::before{content:"·";content:"·" / "";
  margin:0 var(--rf-sep) 0 var(--rf-sep-sp);font-weight:400;color:var(--ink-4)}
/* The contributor line names two dates ("interview … · in the article since
   …"), which does not fit a phone column on one line. The meta line wraps
   between its segments; each date stamp stays unbreakable. */
html[data-polish] .refd{font-size:var(--fs-xs);color:var(--ink-3);white-space:normal;
  font-variant-numeric:tabular-nums}
html[data-polish] .refd .polish-sep{margin:0 var(--rf-sep-sp);color:var(--ink-4);
  font-weight:400}
html[data-polish] .refd .dstamp{font-size:inherit;font-weight:400;letter-spacing:0;
  text-transform:none;color:inherit;white-space:nowrap}
html[data-polish] .refd.contrib{font-weight:500;color:var(--t3-ink)}
html[data-polish] .refkind.polish-lead::before{content:"\A";content:"\A" / "";
  white-space:pre;margin:0}
html[data-polish] .refd.polish-lead{display:block}
html[data-polish] .refd.polish-lead > .polish-sep-lead{display:none}
html[data-polish] .reft{margin:0;max-width:62ch;font-size:var(--fs-md);
  font-weight:400;line-height:1.45;letter-spacing:var(--tr-snug);color:var(--ink);
  text-wrap:pretty;overflow-wrap:anywhere}
html[data-polish] .refstate{position:relative;display:block;margin:6px 0 0;
  padding-left:18px;font-size:var(--fs-xs);line-height:18px;color:var(--ink-3)}
html[data-polish] .refstate::before{content:"";position:absolute;left:0;top:3px;
  width:12px;height:12px;background:var(--ink-4);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='6.4' fill='none' stroke='%23000' stroke-width='1.3'/%3E%3Cpath d='M8 7.3v3.9' stroke='%23000' stroke-width='1.4' stroke-linecap='round'/%3E%3Ccircle cx='8' cy='4.95' r='.9'/%3E%3C/svg%3E") center/12px 12px no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='6.4' fill='none' stroke='%23000' stroke-width='1.3'/%3E%3Cpath d='M8 7.3v3.9' stroke='%23000' stroke-width='1.4' stroke-linecap='round'/%3E%3Ccircle cx='8' cy='4.95' r='.9'/%3E%3C/svg%3E") center/12px 12px no-repeat}
html[data-polish] .refnu{display:block;margin:6px 0 0;font-size:var(--fs-xs);
  font-style:normal;line-height:18px;color:var(--ink-3)}
html[data-polish] .refu{position:relative;display:flex;align-items:center;
  width:fit-content;gap:5px;margin:var(--s3) 0 0 calc(-1 * var(--s1));
  padding:2px var(--s1);border:0;border-radius:6px;
  font-size:var(--fs-xs);font-weight:600;line-height:18px;color:var(--ink-2);
  text-decoration:underline 1px var(--line);text-underline-offset:3px;
  text-decoration-skip-ink:auto;
  transition:color var(--d-2) var(--e-out),text-decoration-color var(--d-2) var(--e-out)}
html[data-polish] .refu::after{content:"";position:absolute;inset:-8px -6px}
html[data-polish] .refu:hover{color:var(--ink);text-decoration-color:var(--accent);
  border-color:transparent}
html[data-polish] .refu svg{display:block;flex:0 0 auto;overflow:visible;color:var(--ink-3);
  transition:color var(--d-2) var(--e-out)}
html[data-polish] .refu svg polyline,
html[data-polish] .refu svg line{transition:transform var(--d-2) var(--e-out)}
html[data-polish] .refu:hover svg{color:var(--accent)}
html[data-polish] .refu:hover svg polyline,
html[data-polish] .refu:hover svg line{transform:translate(3.5px,-3.5px)}
html[data-polish] .refu:focus-visible{outline:none;box-shadow:var(--focus)}
html[data-polish] .refitem::before{content:"";position:absolute;z-index:-1;
  inset:var(--s1) calc(-1 * var(--s3));border-radius:6px;background:var(--accent-soft);
  opacity:0;pointer-events:none}
html[data-polish] .refitem:has(.sbk-contributor)::before{background:var(--t3-bg)}
html[data-polish] .refitem.hit{animation:polishRefIn var(--d-3) var(--e-out) both}
html[data-polish] .refitem.hit::before{animation:polishRefHit 1800ms both}
html[data-polish] .reflist.polish-hitjs .refitem.hit::before{
  animation:polishRefHitOn var(--d-3) var(--e-out) both}
html[data-polish] .reflist.polish-hitjs .refitem.hit.polish-hit-out::before{
  animation:polishRefHitOff var(--rf-hit-out) var(--e-out) both}
html[data-polish] .refitem.hit.polish-hit-done::before,
html[data-polish] .reflist.polish-hitjs .refitem.hit.polish-hit-done::before{animation:none}
html[data-polish] .reflist{--rf-hit-out:680ms}
@keyframes polishRefHit{
  0%{opacity:0;animation-timing-function:var(--e-out)}
  12%{opacity:1;animation-timing-function:linear}
  62%{opacity:1;animation-timing-function:var(--e-out)}
  100%{opacity:0}
}
@keyframes polishRefHitOn{from{opacity:0}to{opacity:1}}
@keyframes polishRefHitOff{from{opacity:1}to{opacity:0}}
html[data-polish] .consulted{margin-top:var(--s4);padding-top:0;
  border-top:1px solid var(--line-2);interpolate-size:allow-keywords}
html[data-polish] .consulted-toggle{width:calc(100% + 2 * var(--s2));min-height:52px;
  margin:0 calc(-1 * var(--s2));padding:var(--s3) var(--s2);
  border-radius:6px;color:var(--ink);
  transition:color var(--d-2) var(--e-out)}
html[data-polish] .consulted-copy{font-size:var(--fs-sm);line-height:1.5;color:var(--ink-2);
  transition:color var(--d-2) var(--e-out)}
html[data-polish] .consulted-copy b{font-weight:600;color:var(--ink)}
html[data-polish] .consulted-toggle:hover .consulted-copy{color:var(--ink)}
html[data-polish] .consulted-toggle:focus-visible{outline:none;box-shadow:var(--focus)}
html[data-polish] .consulted-chevron{width:7px;height:7px;margin-right:4px;
  border-right:1.5px solid var(--ink-3);border-bottom:1.5px solid var(--ink-3);
  transform:translateY(-2px) rotate(45deg);
  transition:transform var(--d-3) var(--e-inout),border-color var(--d-2) var(--e-out)}
html[data-polish] .consulted-toggle:hover .consulted-chevron{border-color:var(--ink)}
html[data-polish] .consulted.on .consulted-chevron{transform:translateY(2px) rotate(225deg)}
html[data-polish] .consulted-body{padding:0 0 var(--s4)}
html[data-polish] .consulted.on .consulted-body{animation:polishConsultIn var(--d-3) var(--e-out) both}
@keyframes polishConsultIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@supports (interpolate-size:allow-keywords){
  html[data-polish] .consulted-body{display:flow-root;height:auto;padding:0;opacity:1;
    overflow:visible;clip-path:inset(-8px -16px 0 -16px);
    transition:height var(--d-3) var(--e-out),opacity var(--d-3) var(--e-out),
      visibility 0s linear 0s}
  html[data-polish] .consulted-body[hidden]{display:flow-root;height:0;opacity:0;
    visibility:hidden;
    transition:height var(--d-2) var(--e-in),opacity var(--d-2) var(--e-in),
      visibility 0s linear var(--d-2)}
  html[data-polish] .consulted.on .consulted-body{animation:none}
  html[data-polish] .consulted-body > :last-child{margin-bottom:var(--s4)}
}
html[data-polish] .consulted-domain{border-top:1px solid var(--line-2)}
html[data-polish] .consulted-domain:last-child{border-bottom:0}
html[data-polish] .consulted-domain summary{align-items:center;min-height:44px;
  margin:0 calc(-1 * var(--s2));padding:var(--s2);border-radius:6px;font-size:var(--fs-sm);font-weight:500;
  line-height:1.4;color:var(--ink);transition:color var(--d-2) var(--e-out)}
html[data-polish] .consulted-domain summary span:first-child{min-width:0;
  overflow-wrap:anywhere}
html[data-polish] .consulted-domain summary span:last-child{flex:0 0 auto;
  font-size:var(--fs-xs);font-weight:400;color:var(--ink-3);
  font-variant-numeric:tabular-nums;transition:color var(--d-2) var(--e-out)}
html[data-polish] .consulted-domain summary::after{width:6px;height:6px;
  margin:0 5px 0 var(--s1);border-right:1.25px solid var(--ink-3);
  border-bottom:1.25px solid var(--ink-3);transform:translateY(-2px) rotate(45deg);
  transition:transform var(--d-3) var(--e-inout),border-color var(--d-2) var(--e-out)}
html[data-polish] .consulted-domain[open] summary::after{margin-top:0;
  transform:translateY(1px) rotate(225deg)}
html[data-polish] .consulted-domain summary:hover span:last-child{color:var(--ink-2)}
html[data-polish] .consulted-domain summary:hover::after{border-color:var(--ink)}
html[data-polish] .consulted-domain summary:focus-visible{outline:none;box-shadow:var(--focus)}
html[data-polish] .consulted-domain ul{margin:0;padding:0 0 var(--s3) var(--s4)}
html[data-polish] .consulted-domain li{padding:var(--s1) 0;font-size:var(--fs-xs);
  line-height:1.5;color:var(--ink-2)}
html[data-polish] .consulted-domain a{border-radius:3px;text-decoration:underline 1px;
  text-decoration-color:var(--line);text-underline-offset:3px;
  transition:color var(--d-2) var(--e-out),text-decoration-color var(--d-2) var(--e-out)}
html[data-polish] .consulted-domain a:hover{color:var(--ink);text-decoration-color:var(--accent)}
html[data-polish] .consulted-domain a:focus-visible{outline:none;box-shadow:var(--focus)}
@supports selector(::details-content){
  html[data-polish] .consulted-domain::details-content{block-size:0;opacity:0;
    overflow:clip;overflow-clip-margin:6px;
    transition:block-size var(--d-2) var(--e-in),opacity var(--d-2) var(--e-in),
      content-visibility var(--d-2) allow-discrete}
  html[data-polish] .consulted-domain[open]::details-content{block-size:auto;opacity:1;
    transition:block-size var(--d-3) var(--e-out),opacity var(--d-3) var(--e-out),
      content-visibility var(--d-3) allow-discrete}
}
html[data-polish][data-theme="dark"] .refs{--rf-rule:var(--line);--rf-track:var(--line)}
html[data-polish][data-theme="dark"] .consulted,
html[data-polish][data-theme="dark"] .consulted-domain{border-color:var(--line)}
html[data-polish][data-theme="dark"] .refmeta .srcbadge{box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}
@media (max-width:720px){
  html[data-polish] .refs{--rf-num:24px;margin-top:var(--s12);padding-top:var(--s8)}
  html[data-polish] .refh{margin-bottom:var(--s2)}
  html[data-polish] .reffilters{--rf-gap-max:var(--s2);margin-top:var(--s4)}
  html[data-polish] .reffilter{height:44px;font-size:var(--fs-xs);gap:4px}
  html[data-polish] .refitem{padding:var(--s5) 0}
  html[data-polish] .reft{font-size:var(--fs-base)}
  html[data-polish] .refu{margin-top:var(--s2);padding:6px var(--s1)}
  html[data-polish] .refu::after{inset:-7px -6px}
  html[data-polish] .refitem::before{inset:var(--s1) calc(-1 * var(--s2))}
}
@media (max-width:380px){
  html[data-polish] .reffilter{gap:3px}
}
@media (prefers-reduced-motion:reduce){
  html[data-polish] .refitem,html[data-polish] .refitem.hit{animation:none}
  html[data-polish] .refitem.hit:not(.polish-hit-done)::before{animation-duration:1800ms!important}
  html[data-polish] .reflist.polish-hitjs .refitem.hit:not(.polish-hit-done)::before{
    animation-duration:var(--d-3)!important}
  html[data-polish] .reflist.polish-hitjs .refitem.hit.polish-hit-out:not(.polish-hit-done)::before{
    animation-duration:var(--rf-hit-out)!important}
  html[data-polish] .reffilter:active{transform:none}
}
