/* URBAN VALUE PROPERTIES LTD - site system.
   Reset: logical properties only. Nothing else is declared globally. */
h1,h2,h3,h4,p,ul,ol,dl,dd,figure,blockquote,fieldset,table{margin-block:0;margin-inline:0}

:root{
  --uv-bg:#e4e9ef;
  --uv-ink:#232a33;
  --uv-accent:#305d7c;
  --uv-accent2:#a35b3c;
  --uv-surface:#f9fafc;

  --uv-rule:rgba(35,42,51,.17);
  --uv-rule-soft:rgba(35,42,51,.09);
  --uv-ink-70:rgba(35,42,51,.72);
  --uv-ink-55:rgba(35,42,51,.56);
  --uv-accent-18:rgba(48,93,124,.18);
  --uv-accent-08:rgba(48,93,124,.08);
  --uv-accent2-40:rgba(163,91,60,.4);
  --uv-accent2-12:rgba(163,91,60,.12);
  /* the two weakest stage colours, kept as tokens so the scheme can restate them */
  --uv-arc1:rgba(48,93,124,.38);
  --uv-arc2:rgba(48,93,124,.62);

  --uv-head:"Epilogue","Segoe UI",system-ui,sans-serif;
  --uv-body:"Hind","Segoe UI",system-ui,sans-serif;

  --uv-rail:3.25rem;
  --uv-rail-open:min(15rem,calc(100vw - 3.5rem));
  --uv-gutter:17.5rem;

  /* Dial state. Both dials - gutter and rail - read these two numbers, so the
     instrument cannot disagree with itself. script.js writes them here. */
  --uv-hand:158.18deg;
  --uv-arrival:327.27deg;

  --uv-noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='170' height='170'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.84' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='170' height='170' filter='url(%23g)' opacity='0.55'/%3E%3C/svg%3E");
}

html{-webkit-text-size-adjust:100%}
body{
  background:var(--uv-bg);
  color:var(--uv-ink);
  font-family:var(--uv-body);
  font-size:1rem;
  line-height:1.62;
  margin-block:0;
  margin-inline:0;
  position:relative;
}
/* Texture: fixed grey grain over the page, never over the pointer. */
body::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:60;
  pointer-events:none;
  background-image:var(--uv-noise);
  background-size:170px 170px;
  opacity:.3;
  mix-blend-mode:multiply;
}

/* ---------------- shell ---------------- */
.uv-skip{
  position:absolute;
  inset-block-start:-4rem;
  inset-inline-start:.5rem;
  z-index:80;
  background:var(--uv-ink);
  color:var(--uv-surface);
  font-family:var(--uv-head);
  font-weight:600;
  font-size:.78rem;
  letter-spacing:.07em;
  text-transform:uppercase;
  padding-block:.55rem;
  padding-inline:.9rem;
  text-decoration:none;
  transition:inset-block-start .18s ease-out;
}
.uv-skip:focus{inset-block-start:.5rem}

/* The rail column must stretch to the full page height, not to its own content:
   a sticky child can only stick inside its own grid item, so align-items:start
   would let the rail scroll away after one viewport. */
.uv-frame{
  display:grid;
  grid-template-columns:var(--uv-rail) minmax(0,1fr);
  align-items:stretch;
  min-block-size:100vh;
}

/* ---------------- expanding rail ---------------- */
.uv-rail{grid-column:1;position:relative;z-index:30}
.uv-rail__in{
  position:sticky;
  inset-block-start:0;
  inline-size:var(--uv-rail);
  box-sizing:border-box;
  background:var(--uv-surface);
  border-inline-end:1px solid var(--uv-rule);
  min-block-size:100vh;
  padding-block:.6rem 1rem;
  overflow:hidden;
  transition:inline-size .26s cubic-bezier(.3,.9,.3,1),box-shadow .26s ease-out;
}
.uv-rail__in:hover,.uv-rail__in:focus-within{
  inline-size:var(--uv-rail-open);
  box-shadow:12px 0 26px rgba(35,42,51,.16);
}
.uv-rail__label{
  font-family:var(--uv-head);
  font-weight:600;
  font-size:.78rem;
  letter-spacing:.055em;
  text-transform:uppercase;
  white-space:nowrap;
  opacity:0;
  transform:translateX(-5px);
  transition:opacity .2s ease-out,transform .22s cubic-bezier(.3,.9,.3,1);
}
.uv-rail__in:hover .uv-rail__label,.uv-rail__in:focus-within .uv-rail__label{
  opacity:1;
  transform:translateX(0);
}
.uv-rail__clock,.uv-nav__link{
  display:flex;
  align-items:center;
  gap:.7rem;
  padding-block:.55rem;
  padding-inline:.6rem;
  color:var(--uv-ink);
  text-decoration:none;
  border-inline-start:3px solid transparent;
  transition:background-color .18s ease-out,border-inline-start-color .18s ease-out,color .18s ease-out;
}
.uv-rail__clock{
  border-block-end:1px solid var(--uv-rule-soft);
  padding-block:.5rem .8rem;
  margin-block-end:.55rem;
  align-items:flex-start;
}
.uv-rail__clock .uv-rail__label{line-height:1.3;font-size:.62rem}
.uv-rail__clock .uv-rail__label span{
  display:block;
  font-size:1.05rem;
  letter-spacing:.02em;
  color:var(--uv-accent);
}
.uv-nav__list{list-style:none;padding-inline:0;margin-block:0}
.uv-nav__link:hover,.uv-rail__clock:hover{background:var(--uv-accent-08)}
.uv-nav__link:hover{border-inline-start-color:var(--uv-accent2-40)}
.uv-nav__link:focus-visible,.uv-rail__clock:focus-visible,.uv-skip:focus-visible{
  outline:2px solid var(--uv-accent2);
  outline-offset:-2px;
}
.uv-nav__link[aria-current="page"]{
  border-inline-start-color:var(--uv-accent2);
  background:var(--uv-accent2-12);
}
.uv-nav__link[aria-current="page"] .uv-rail__label{color:var(--uv-accent2)}

.uv-ico{inline-size:1.4rem;block-size:1.4rem;flex:0 0 auto}
.uv-ico__ring{fill:none;stroke:var(--uv-rule);stroke-width:1.6}
.uv-ico__arc{
  fill:none;
  stroke:var(--uv-accent);
  stroke-width:2.6;
  stroke-linecap:butt;
  transition:stroke .18s ease-out;
}
.uv-nav__link:hover .uv-ico__arc,
.uv-nav__link[aria-current="page"] .uv-ico__arc{stroke:var(--uv-accent2)}
.uv-mini{inline-size:1.55rem;block-size:1.55rem;flex:0 0 auto}
.uv-mini__ring{fill:none;stroke:var(--uv-rule);stroke-width:1.5}
.uv-mini__hand path{fill:none;stroke:var(--uv-accent);stroke-width:2.4;stroke-linecap:round}
.uv-mini__hand{
  transform-box:view-box;
  transform-origin:50% 50%;
  transform:rotate(var(--uv-hand));
  transition:transform .5s cubic-bezier(.3,.9,.3,1);
}
.uv-mini__hub{fill:var(--uv-ink)}

/* ---------------- masthead ---------------- */
.uv-stack{grid-column:2;min-inline-size:0;padding-inline:1rem}
.uv-masthead{
  border-block-end:2px solid var(--uv-ink);
  padding-block:1.4rem .5rem;
  margin-block-end:1.6rem;
}
.uv-masthead__kicker{
  font-family:var(--uv-head);
  font-weight:600;
  font-size:.62rem;
  letter-spacing:.3em;
  text-transform:uppercase;
  color:var(--uv-accent2);
  margin-block-end:.5rem;
}
.uv-wordmark{
  display:block;
  font-family:var(--uv-head);
  font-weight:600;
  font-size:clamp(1.42rem,6.8vw,2.85rem);
  line-height:1.03;
  letter-spacing:-.012em;
  color:var(--uv-ink);
  text-decoration:none;
  transition:color .18s ease-out;
}
.uv-wordmark:hover{color:var(--uv-accent)}
.uv-wordmark b{
  font-weight:600;
  font-size:.4em;
  letter-spacing:.14em;
  vertical-align:.52em;
  color:var(--uv-accent);
}
.uv-folio{
  display:flex;
  flex-wrap:wrap;
  gap:.1rem 1.1rem;
  font-size:.7rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--uv-ink-55);
  border-block-start:1px solid var(--uv-rule);
  margin-block-start:.7rem;
  padding-block-start:.45rem;
}
.uv-folio span{display:block}

/* ---------------- spread: article + standing gutter ---------------- */
.uv-spread{display:grid;grid-template-columns:minmax(0,1fr);gap:1.7rem}
.uv-main{min-inline-size:0;max-inline-size:40rem}
.uv-main>section{margin-block-end:2.6rem}
.uv-main>section:last-of-type{margin-block-end:0}

h1,h2,h3{font-family:var(--uv-head);font-weight:600;line-height:1.16;letter-spacing:-.01em}
.uv-lede{
  font-size:clamp(1.2rem,4.4vw,1.68rem);
  line-height:1.3;
  letter-spacing:-.015em;
  font-family:var(--uv-head);
  font-weight:600;
  max-inline-size:34ch;
}
.uv-quiet{font-size:1.03rem;color:var(--uv-ink-70);margin-block-start:1rem}
/* Running head on a sub-page: which part of the masthead you are standing in. */
.uv-eyebrow{
  font-family:var(--uv-head);
  font-weight:600;
  font-size:.62rem;
  letter-spacing:.26em;
  text-transform:uppercase;
  color:var(--uv-accent2);
  border-block-end:1px solid var(--uv-rule);
  padding-block-end:.5rem;
  margin-block-end:1.1rem;
}
.uv-h{
  font-size:1.1rem;
  letter-spacing:.02em;
  margin-block-end:.85rem;
  display:flex;
  flex-wrap:wrap;
  gap:.35em;
  align-items:baseline;
}
.uv-h::before{content:"[";color:var(--uv-accent2)}
.uv-h::after{content:"]";color:var(--uv-accent2)}
.uv-h3{
  font-size:.84rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--uv-accent);
  margin-block:1.5rem .5rem;
}
.uv-main p{margin-block-end:.9rem}
.uv-main p:last-child{margin-block-end:0}
strong{font-family:var(--uv-head);font-weight:600}
.uv-addressed{
  display:inline-block;
  font-family:var(--uv-head);
  font-weight:600;
  font-size:.62rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--uv-surface);
  background:var(--uv-accent);
  padding-block:.18rem;
  padding-inline:.5rem;
  border-radius:1px;
}
.uv-addressed--landlord{background:var(--uv-accent2)}
a{
  color:var(--uv-accent);
  text-decoration-thickness:1px;
  text-underline-offset:.18em;
  transition:color .16s ease-out,text-decoration-color .16s ease-out;
}
.uv-main a{text-decoration-color:var(--uv-accent-18)}
.uv-main a:hover{color:var(--uv-accent2);text-decoration-color:var(--uv-accent2)}
.uv-list{list-style:none;padding-inline:0}
.uv-list li{padding-inline-start:1.35rem;position:relative;margin-block-end:.55rem}
.uv-list li::before{
  content:"";
  position:absolute;
  inset-inline-start:0;
  inset-block-start:.72em;
  inline-size:.55rem;
  block-size:1px;
  background:var(--uv-accent2);
}

/* ---------------- index cards ---------------- */
.uv-cards{display:grid;grid-template-columns:minmax(0,1fr);gap:.9rem;margin-block-start:1.2rem}
.uv-card{
  position:relative;
  box-sizing:border-box;
  background:var(--uv-surface);
  border:1px solid var(--uv-rule);
  padding-block:.8rem 1.3rem;
  padding-inline:1rem;
  transform:translateY(0);
  box-shadow:0 1px 0 rgba(35,42,51,.06);
  transition:transform .2s cubic-bezier(.3,.9,.3,1),box-shadow .2s ease-out,border-color .2s ease-out;
}
.uv-card:hover{
  transform:translateY(-3px);
  box-shadow:0 10px 20px -12px rgba(35,42,51,.34);
  border-color:var(--uv-accent2-40);
}
.uv-card::before{
  content:"";
  position:absolute;
  inset-inline:1rem;
  inset-block-start:2.5rem;
  border-block-start:1px solid var(--uv-accent2-40);
}
.uv-card__ref{
  display:flex;
  justify-content:space-between;
  gap:.6rem;
  font-family:var(--uv-head);
  font-weight:600;
  font-size:.64rem;
  letter-spacing:.17em;
  text-transform:uppercase;
  color:var(--uv-accent);
}
.uv-card__ref em{font-style:normal;color:var(--uv-accent2)}
.uv-card__name{font-size:1rem;margin-block:1.1rem .45rem}
.uv-card__name span{
  display:inline-block;
  font-family:var(--uv-body);
  font-weight:400;
  font-size:.78rem;
  color:var(--uv-ink-55);
  letter-spacing:.04em;
  margin-inline-start:.35rem;
}
.uv-card p{font-size:.92rem;margin-block-end:.55rem}
.uv-card__rows{margin-block-start:.65rem}
.uv-card__row{
  display:grid;
  grid-template-columns:4.6rem minmax(0,1fr);
  gap:.2rem .7rem;
  border-block-start:1px dashed var(--uv-rule-soft);
  padding-block:.35rem;
  font-size:.85rem;
}
.uv-card__row dt{
  font-family:var(--uv-head);
  font-weight:600;
  font-size:.62rem;
  letter-spacing:.11em;
  text-transform:uppercase;
  color:var(--uv-ink-55);
  padding-block-start:.24rem;
}
.uv-card__row dd{margin-inline-start:0}
.uv-card__hole{
  position:absolute;
  inset-block-end:.55rem;
  inset-inline-end:.8rem;
  inline-size:.6rem;
  block-size:.6rem;
  border-radius:50%;
  background:var(--uv-bg);
  box-shadow:inset 0 1px 2px rgba(35,42,51,.3);
}

/* ---------------- the gutter instrument ---------------- */
.uv-gutter{min-inline-size:0}
.uv-clock{
  box-sizing:border-box;
  background:var(--uv-surface);
  border:1px solid var(--uv-rule);
  border-block-start:3px solid var(--uv-ink);
  padding-block:.9rem 1rem;
  padding-inline:1rem;
}
.uv-clock__kicker{
  font-family:var(--uv-head);
  font-weight:600;
  font-size:.6rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--uv-accent2);
}
.uv-clock__head{font-size:1.02rem;margin-block:.2rem .55rem}
.uv-dial{display:block;inline-size:100%;max-inline-size:14rem;block-size:auto;margin-inline:auto}
.uv-dial__track{fill:none;stroke:var(--uv-rule-soft);stroke-width:18}
.uv-dial__ticks path{fill:none;stroke:var(--uv-rule);stroke-width:1.4}
.uv-arc{
  fill:none;
  stroke-width:18;
  stroke-linecap:butt;
  stroke-dasharray:100;
  stroke-dashoffset:0;
  animation:uv-sweep .85s var(--uv-d,0s) cubic-bezier(.3,.9,.3,1) 1 backwards;
}
.uv-arc--strip{stroke:var(--uv-arc1)}
.uv-arc--clean{stroke:var(--uv-arc2)}
.uv-arc--linen{stroke:var(--uv-accent)}
.uv-arc--check{stroke:var(--uv-accent2)}
.uv-arc--key{stroke:var(--uv-ink)}
.uv-dial__arrival{
  transform-box:view-box;
  transform-origin:50% 50%;
  transform:rotate(var(--uv-arrival));
  transition:transform .5s cubic-bezier(.3,.9,.3,1);
}
.uv-dial__arrival path{fill:none;stroke:var(--uv-accent2);stroke-width:3}
.uv-dial__out path{fill:none;stroke:var(--uv-ink);stroke-width:3}
.uv-dial__hand{
  transform-box:view-box;
  transform-origin:50% 50%;
  transform:rotate(var(--uv-hand));
  transition:transform .55s cubic-bezier(.3,.9,.3,1);
  animation:uv-hand-settle 1.25s .18s cubic-bezier(.22,1,.3,1) 1;
}
/* Specific enough to beat any element rule inside the hand group: a half-filled
   needle reads as a mouse cursor, which is the one thing it must not be. */
.uv-dial__hand .uv-dial__tip{fill:var(--uv-ink);stroke:none}
.uv-mini{inline-size:1.65rem;block-size:1.65rem}
.uv-dial__read{
  font-family:var(--uv-head);
  font-weight:600;
  font-size:30px;
  letter-spacing:-.02em;
  fill:var(--uv-ink);
  text-anchor:middle;
  animation:uv-read-in .5s .9s ease-out 1 backwards;
}
.uv-dial__sub{
  font-family:var(--uv-head);
  font-weight:600;
  font-size:9.5px;
  letter-spacing:.2em;
  fill:var(--uv-ink-55);
  text-anchor:middle;
  animation:uv-read-in .5s 1s ease-out 1 backwards;
}
.uv-clock__state{
  font-size:.86rem;
  color:var(--uv-ink-70);
  border-block-start:1px solid var(--uv-rule);
  padding-block-start:.6rem;
  margin-block-start:.5rem;
}
.uv-legend{margin-block-start:.6rem;font-size:.8rem}
.uv-legend div{
  display:grid;
  grid-template-columns:.7rem minmax(0,1fr) auto;
  align-items:center;
  gap:.55rem;
  border-block-start:1px dashed var(--uv-rule-soft);
  padding-block:.26rem;
}
.uv-legend dt{display:contents}
.uv-legend i{
  inline-size:.7rem;
  block-size:.7rem;
  border-radius:1px;
  background:var(--uv-accent);
  transition:transform .18s ease-out;
}
.uv-legend div:hover i{transform:scale(1.4)}
.uv-legend i.s1{background:var(--uv-arc1)}
.uv-legend i.s2{background:var(--uv-arc2)}
.uv-legend i.s3{background:var(--uv-accent)}
.uv-legend i.s4{background:var(--uv-accent2)}
.uv-legend i.s5{background:var(--uv-ink)}
.uv-legend dd{margin-inline-start:0;font-variant-numeric:tabular-nums;color:var(--uv-ink-55)}
.uv-clock__note{font-size:.74rem;color:var(--uv-ink-55);margin-block-start:.7rem}
.uv-clock__more{font-size:.74rem;margin-block-start:.5rem}

/* ---------------- widgets ---------------- */
.uv-tool{
  box-sizing:border-box;
  background:var(--uv-surface);
  border:1px solid var(--uv-rule);
  padding-block:.9rem 1rem;
  padding-inline:1rem;
  margin-block-start:1.1rem;
}
.uv-tool legend{
  font-family:var(--uv-head);
  font-weight:600;
  font-size:.66rem;
  letter-spacing:.17em;
  text-transform:uppercase;
  color:var(--uv-accent);
  padding-inline:.4rem;
}
.uv-fields{display:grid;grid-template-columns:minmax(0,1fr);gap:.7rem}
.uv-field{display:flex;flex-direction:column;gap:.25rem}
.uv-field label{
  font-size:.72rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--uv-ink-55);
  font-family:var(--uv-head);
  font-weight:600;
}
.uv-field input{
  box-sizing:border-box;
  inline-size:100%;
  font-family:var(--uv-body);
  font-size:1rem;
  color:var(--uv-ink);
  background:var(--uv-bg);
  border:1px solid var(--uv-rule);
  border-block-end:2px solid var(--uv-accent-18);
  padding-block:.45rem;
  padding-inline:.6rem;
  transition:border-color .18s ease-out,background-color .18s ease-out;
}
.uv-field input:hover{background:var(--uv-surface)}
.uv-field input:focus{
  outline:2px solid var(--uv-accent2);
  outline-offset:1px;
  border-block-end-color:var(--uv-accent2);
  background:var(--uv-surface);
}
.uv-work{margin-block-start:1rem;border-block-start:1px solid var(--uv-rule);padding-block-start:.6rem}
.uv-work__line{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:.05rem;
  border-block-end:1px dashed var(--uv-rule-soft);
  padding-block:.45rem;
}
.uv-work__line b{
  font-family:var(--uv-head);
  font-weight:600;
  font-size:.62rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--uv-ink-55);
}
.uv-work__line span{font-variant-numeric:tabular-nums;font-size:.96rem}
.uv-work__line--out span{
  font-family:var(--uv-head);
  font-weight:600;
  font-size:1.16rem;
  color:var(--uv-accent);
}
.uv-work__line--short span{color:var(--uv-accent2)}
.uv-guide{font-size:.74rem;color:var(--uv-ink-55);margin-block-start:.7rem}
.uv-reset{
  font-family:var(--uv-head);
  font-weight:600;
  font-size:.64rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--uv-surface);
  background:var(--uv-ink);
  border:1px solid var(--uv-ink);
  padding-block:.45rem;
  padding-inline:.9rem;
  margin-block-start:.8rem;
  cursor:pointer;
  transform:translateY(0);
  transition:background-color .18s ease-out,transform .18s ease-out,border-color .18s ease-out;
}
.uv-reset:hover{background:var(--uv-accent);border-color:var(--uv-accent);transform:translateY(-1px)}
.uv-reset:focus-visible{outline:2px solid var(--uv-accent2);outline-offset:2px}

/* ---------------- drawn map ---------------- */
.uv-figure{margin-block-start:1.2rem}
.uv-map{
  display:block;
  inline-size:100%;
  block-size:auto;
  background:var(--uv-surface);
  border:1px solid var(--uv-rule);
}
.uv-map__road{fill:none;stroke:var(--uv-rule);stroke-width:7;stroke-linecap:round}
.uv-map__rail{fill:none;stroke:var(--uv-accent);stroke-width:2.2;stroke-dasharray:9 5}
.uv-map__stop{fill:var(--uv-surface);stroke:var(--uv-accent);stroke-width:2}
.uv-map__pin{fill:var(--uv-accent2)}
.uv-map__park{fill:var(--uv-accent-08);stroke:var(--uv-accent-18)}
.uv-map__north{fill:none;stroke:var(--uv-ink-55);stroke-width:2}
.uv-bar--1{fill:var(--uv-arc1)}
.uv-bar--2{fill:var(--uv-arc2)}
.uv-bar--3{fill:var(--uv-accent)}
.uv-bar--4{fill:var(--uv-accent2)}
.uv-bar--5{fill:var(--uv-ink)}
.uv-bar__margin{fill:var(--uv-accent-08);stroke:var(--uv-accent-18);stroke-dasharray:5 4}
.uv-bar__axis{fill:none;stroke:var(--uv-rule);stroke-width:1.4}
.uv-bar__edge{fill:none;stroke:var(--uv-ink);stroke-width:2}
.uv-bar__lead{fill:none;stroke:var(--uv-rule);stroke-width:1}
.uv-map text{font-family:var(--uv-body);font-size:10.5px;fill:var(--uv-ink-70)}
.uv-map__here{font-family:var(--uv-head);font-weight:600;font-size:11px;fill:var(--uv-accent2)}
.uv-figure figcaption{font-size:.76rem;color:var(--uv-ink-55);margin-block-start:.5rem}

/* ---------------- facts, sheets ---------------- */
.uv-facts{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  border-block-start:1px solid var(--uv-ink);
  margin-block-start:1rem;
}
.uv-facts div{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:.1rem .5rem;
  border-block-end:1px solid var(--uv-rule-soft);
  padding-block:.5rem;
}
.uv-facts dt{
  font-family:var(--uv-head);
  font-weight:600;
  font-size:.64rem;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:var(--uv-ink-55);
  padding-block-start:.22rem;
}
/* A 32-character address has no break opportunity in it; let it take one
   rather than widen the document at 320px. */
.uv-facts dd,.uv-foot__reg{margin-inline-start:0;overflow-wrap:anywhere}
.uv-facts dd{font-size:.94rem}
.uv-sheet{inline-size:100%;border-collapse:collapse;font-size:.88rem;margin-block-start:1rem}
.uv-sheet caption{
  text-align:start;
  font-family:var(--uv-head);
  font-weight:600;
  font-size:.64rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--uv-accent);
  padding-block-end:.45rem;
}
.uv-sheet th,.uv-sheet td{
  text-align:start;
  border-block-end:1px solid var(--uv-rule-soft);
  padding-block:.45rem;
  padding-inline:0 .6rem;
  vertical-align:top;
}
.uv-sheet thead th{
  border-block-end:1px solid var(--uv-ink);
  font-family:var(--uv-head);
  font-size:.62rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--uv-ink-55);
}
.uv-sheet tbody tr{transition:background-color .16s ease-out}
.uv-sheet tbody tr:hover{background:var(--uv-accent-08)}
.uv-sheet td:last-child{font-variant-numeric:tabular-nums}
.uv-scroll{overflow-x:auto}

/* ---------------- footer ---------------- */
.uv-foot{
  border-block-start:2px solid var(--uv-ink);
  margin-block-start:2.4rem;
  padding-block:1.2rem 2.4rem;
  font-size:.85rem;
  color:var(--uv-ink-70);
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:1rem;
}
.uv-foot__name{
  font-family:var(--uv-head);
  font-weight:600;
  font-size:.76rem;
  letter-spacing:.1em;
  color:var(--uv-ink);
  margin-block-end:.35rem;
}
.uv-foot address{font-style:normal;line-height:1.5}
.uv-foot__reg{margin-block-start:.6rem;font-size:.79rem;color:var(--uv-ink-55)}
.uv-foot a{color:var(--uv-accent);text-decoration-color:var(--uv-accent-18)}
.uv-foot a:hover{color:var(--uv-accent2);text-decoration-color:var(--uv-accent2)}
.uv-foot__links{list-style:none;padding-inline:0;font-size:.81rem}
.uv-foot__links li{margin-block-end:.3rem}

/* ---------------- widths ---------------- */
@media (min-width:34em){
  .uv-facts div{grid-template-columns:minmax(7rem,9rem) minmax(0,1fr)}
  .uv-folio span{display:inline;white-space:nowrap}
  .uv-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
  .uv-work__line{grid-template-columns:minmax(0,10rem) minmax(0,1fr);align-items:baseline;gap:.7rem}
  .uv-work__line b{padding-block-start:.16rem}
  .uv-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .uv-foot{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}
}
@media (min-width:48em){
  :root{--uv-rail:3.5rem}
  .uv-stack{padding-inline:1.8rem}
  .uv-masthead{padding-block:2rem .55rem}
}
@media (min-width:64em){
  .uv-spread{grid-template-columns:minmax(0,1fr) var(--uv-gutter);gap:2.4rem}
  .uv-main{grid-column:1;grid-row:1}
  .uv-gutter{grid-column:2;grid-row:1;position:sticky;inset-block-start:1.2rem;align-self:start}
}
@media (min-width:80em){
  :root{--uv-gutter:19.5rem}
  .uv-stack{padding-inline:2.6rem;max-inline-size:84rem}
  .uv-main{max-inline-size:44rem}
}
@media print{
  body::after,.uv-rail,.uv-skip,.uv-reset{display:none}
  .uv-frame{grid-template-columns:minmax(0,1fr)}
  .uv-stack{grid-column:1}
  .uv-card,.uv-clock,.uv-tool{break-inside:avoid}
}

/* ---------------- scheme ---------------- */
/* Dark is the same five colours re-cast rather than a second palette: the slate
   becomes the page, the pale slate becomes the ink, and the two accents are
   lifted toward it. No sixth colour is introduced anywhere below. */
@media (prefers-color-scheme:dark){
  :root{
    --uv-bg:#232a33;
    --uv-ink:#e4e9ef;
    --uv-surface:color-mix(in srgb,#e4e9ef 6%,#232a33);
    --uv-accent:color-mix(in srgb,#305d7c 42%,#e4e9ef);
    --uv-accent2:color-mix(in srgb,#a35b3c 62%,#e4e9ef);
    --uv-rule:rgba(228,233,239,.22);
    --uv-rule-soft:rgba(228,233,239,.12);
    --uv-ink-70:rgba(228,233,239,.76);
    --uv-ink-55:rgba(228,233,239,.6);
    --uv-accent-18:rgba(228,233,239,.17);
    --uv-accent-08:rgba(228,233,239,.07);
    --uv-accent2-40:color-mix(in srgb,#a35b3c 48%,#232a33);
    --uv-accent2-12:color-mix(in srgb,#a35b3c 20%,#232a33);
    --uv-arc1:color-mix(in srgb,#305d7c 55%,#232a33);
    --uv-arc2:color-mix(in srgb,#305d7c 92%,#232a33);
  }
  body::after{opacity:.17;mix-blend-mode:screen}
  .uv-card{box-shadow:0 1px 0 rgba(0,0,0,.34)}
  .uv-card:hover{box-shadow:0 10px 20px -12px rgba(0,0,0,.7)}
  .uv-rail__in:hover,.uv-rail__in:focus-within{box-shadow:12px 0 26px rgba(0,0,0,.55)}
  .uv-card__hole{box-shadow:inset 0 1px 2px rgba(0,0,0,.65)}
}

/* ---------------- motion ---------------- */
@keyframes uv-sweep{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
@keyframes uv-hand-settle{from{transform:rotate(-16deg)}to{transform:rotate(var(--uv-hand))}}
@keyframes uv-read-in{from{opacity:0}to{opacity:1}}
@keyframes uv-mark-slide{from{transform:translateX(-3px)}to{transform:translateX(0)}}
.uv-nav__link:hover .uv-rail__label{animation:uv-mark-slide .22s ease-out 1}

/* Reduced motion. Last in the file so nothing above can out-rank it: the dial is
   handed over already drawn, with the hand already at the ready angle. */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-delay:0ms !important;
    animation-duration:1ms !important;
    animation-iteration-count:1 !important;
    transition-duration:1ms !important;
    transition-delay:0ms !important;
  }
  .uv-arc{animation:none !important;stroke-dashoffset:0 !important}
  .uv-dial__hand{animation:none !important;transform:rotate(var(--uv-hand)) !important}
  .uv-mini__hand{transform:rotate(var(--uv-hand)) !important}
  .uv-dial__read,.uv-dial__sub{animation:none !important;opacity:1 !important}
  .uv-card:hover{transform:none !important}
  .uv-reset:hover{transform:none !important}
  .uv-legend div:hover i{transform:none !important}
  .uv-nav__link:hover .uv-rail__label{animation:none !important}
}
