@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap');

/* Screen themes are independent of the one-page print stylesheet. */
@media screen {
  :root {
    color-scheme: light;
    --paper: #fafaf8;
    --panel: #f0f1ed;
    --ink: #212622;
    --ink-2: #535c55;
    --ink-3: #656e67;
    --rule: #d9ded7;
    --rule-2: #b0baae;
    --link: #355b46;
    --link-hover: #193c28;
    --accent-soft: #e6ece3;
    --on-accent: #fff;
    --serif: 'DM Sans', sans-serif;
    --wide: 1200px;
    --pad: clamp(22px, 5vw, 60px);
  }
  :root[data-theme="dark"] {
    color-scheme: dark;
    --paper: #181d1a;
    --panel: #222a24;
    --ink: #edf0e9;
    --ink-2: #bac4b9;
    --ink-3: #a0ad9f;
    --rule: #3a453a;
    --rule-2: #60705e;
    --link: #bbd6a9;
    --link-hover: #dfefcc;
    --accent-soft: #303e2d;
    --on-accent: #192116;
  }
  html {scroll-behavior:smooth; scroll-padding-top:105px}
  body {font-family:'DM Sans',sans-serif; font-size:17px; line-height:1.75}
  h1,h2,h3 {font-family:'Source Serif 4',Georgia,serif; font-weight:500; letter-spacing:-.035em}
  a {transition:color .18s,background .18s}
  ::selection {background:var(--link); color:var(--paper)}
  :focus-visible {outline:3px solid var(--link); outline-offset:5px}
  .top {background:var(--paper);border-bottom:1px solid var(--rule);position:sticky;top:0;z-index:20}
  .top__inner {min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:22px}
  .top__name {font:600 18px 'DM Sans',sans-serif;color:var(--ink);text-decoration:none;white-space:nowrap}
  .top__name:before {content:'RY';font:500 13px 'IBM Plex Mono',monospace;border:1px solid var(--rule-2);border-radius:50%;display:inline-grid;place-items:center;width:38px;height:38px;margin-right:13px}
  .top__nav {display:flex;gap:24px;align-items:center}
  .top__nav a {font:14px 'DM Sans',sans-serif;text-decoration:none;color:var(--ink-2);padding:8px 0}
  .top__nav a[aria-current] {color:var(--ink);border-bottom:1px solid var(--link)}
  .theme-toggle {border:1px solid var(--rule);border-radius:6px;background:var(--panel);color:var(--ink);font:14px 'DM Sans',sans-serif;padding:9px 13px;cursor:pointer;white-space:nowrap}
  .theme-toggle:hover {border-color:var(--link)}
  .eyebrow {font:12px 'IBM Plex Mono',monospace;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-3)}
  .editorial-hero {padding:88px 0 62px;display:grid;grid-template-columns:1fr 230px;gap:55px;align-items:end}
  .editorial-hero h1 {font-size:clamp(50px,6.2vw,78px);line-height:1.1;margin:26px 0;max-width:830px;font-weight:400}
  .editorial-hero h1 em {font-weight:400;color:var(--link)}
  .hero-intro {max-width:640px;font-size:19px;color:var(--ink-2);line-height:1.8}
  .hero-actions {display:flex;gap:25px;align-items:center;flex-wrap:wrap;margin-top:28px}
  .btn {background:var(--link);color:var(--on-accent);border:1px solid var(--link);border-radius:4px;display:inline-flex;gap:24px;padding:13px 21px;font:500 15px 'DM Sans',sans-serif;text-decoration:none;cursor:pointer}
  .btn:hover {background:var(--link-hover);color:var(--on-accent)}
  .text-link {color:var(--ink);text-decoration:none;border-bottom:1px solid var(--rule-2);padding-bottom:4px;font-size:14px}
  .hero-aside {border-left:1px solid var(--rule);padding-left:25px;margin-bottom:8px}
  .hero-aside p {font-size:14px;color:var(--ink-2);margin:8px 0 23px}
  .hero-aside strong {display:block;font-size:15px;color:var(--ink);font-weight:500}
  .hero-aside .small-label {font:11px 'IBM Plex Mono',monospace;letter-spacing:.08em;color:var(--ink-3);text-transform:uppercase}
  .expertise-strip {border-block:1px solid var(--rule);display:flex;justify-content:space-between;gap:16px;padding:20px 0;color:var(--ink-2);font-size:13px;flex-wrap:wrap}
  .expertise-strip span:first-child {color:var(--ink);font-weight:600}
  .section-heading {display:flex;align-items:end;justify-content:space-between;gap:25px;margin:74px 0 30px}
  .section-heading h2 {font-size:40px;line-height:1.2;margin-top:12px}
  .section-heading>p {max-width:360px;font-size:15px;color:var(--ink-2)}
  .work-row {display:grid;grid-template-columns:48px 1fr 190px;gap:28px;border-top:1px solid var(--rule);padding:36px 0;align-items:start}
  .work-number {color:var(--ink-3);font:13px 'IBM Plex Mono',monospace;padding-top:9px}
  .work-row h3 {font-size:29px;line-height:1.3;margin-bottom:14px}
  .work-row h3 a {color:var(--ink);text-decoration:none}
  .work-row h3 a:hover {color:var(--link)}
  .work-row p {font-size:16px;color:var(--ink-2);max-width:640px;margin-bottom:15px}
  .work-row .work-meta {font:12px 'IBM Plex Mono',monospace;color:var(--ink-3);line-height:1.9}
  .work-result {background:var(--accent-soft);padding:22px;border-radius:3px;min-height:128px}
  .work-result strong {font:400 39px/1.2 'Source Serif 4',Georgia,serif;display:block;color:var(--link);letter-spacing:-.035em}
  .work-result span {font-size:13px;line-height:1.6;display:block;margin-top:7px;color:var(--ink-2)}
  .work-row details {margin-top:17px;font-size:15px;max-width:640px}
  .work-row summary {color:var(--link);cursor:pointer;font-size:14px;list-style:revert;display:list-item}
  .work-row details p {padding-top:13px;font-size:15px}
  .experience-band {margin-top:70px;background:var(--panel);padding:38px;display:grid;grid-template-columns:1fr 1.7fr;gap:45px;border-radius:3px}
  .experience-band h2 {font-size:35px;line-height:1.2;margin:12px 0 22px}
  .career-row {display:grid;grid-template-columns:110px 1fr;gap:20px;padding:21px 0;border-bottom:1px solid var(--rule)}
  .career-row:first-child {padding-top:0}.career-row:last-child {border-bottom:0;padding-bottom:0}
  .career-row time {font:12px 'IBM Plex Mono',monospace;color:var(--ink-3);padding-top:5px}
  .career-row strong {font-size:16px;font-weight:500}.career-row p {font-size:14px;color:var(--ink-2);margin-top:4px}
  .personal-note {display:grid;grid-template-columns:1fr 1.7fr;gap:45px;padding:65px 38px;border-bottom:1px solid var(--rule)}
  .personal-note h2 {font-size:35px;line-height:1.25}.personal-note p {color:var(--ink-2);margin-bottom:18px;max-width:630px}
  .outro {padding:65px 0 10px;display:flex;justify-content:space-between;align-items:center;gap:30px}
  .outro h2 {font-size:42px;line-height:1.2}.outro p {margin-top:12px;color:var(--ink-2);font-size:16px}
  .foot {border-top:1px solid var(--rule);padding:30px 0;margin-top:70px;color:var(--ink-3);font-size:13px}.foot a{color:var(--ink-2)}.foot__colophon{display:none}
  .page-head{padding:65px 0 30px}.page-head h1{font-size:clamp(48px,7vw,78px);line-height:1.1}.page-sub{max-width:720px;font-size:18px;color:var(--ink-2);margin-top:25px}
  .sec{font-size:31px;border-color:var(--rule);margin-top:60px}.prose{max-width:760px}.prose .lead{font:400 32px/1.4 'Source Serif 4',Georgia,serif;color:var(--ink)}.prose p{color:var(--ink-2)}
  .stint{padding:30px 0;border-color:var(--rule)}.stint h3{font-size:26px}.stint__when,.stint__org,.meta{color:var(--ink-3)}.stint__body{color:var(--ink-2)}
  .project{padding:35px 0;border-top:1px solid var(--rule);margin:20px 0;scroll-margin-top:110px}.project h2{font-size:32px}.project .body{max-width:780px;color:var(--ink-2)}.project:target{border-top-color:var(--link)}
  .channels li{border-color:var(--rule)}.channels a{display:block;padding:23px 0;text-decoration:none}.channels .ch-name,.channels .ch-val{display:block}.ch-name{color:var(--ink);font-size:23px}.channels .ch-val{color:var(--ink-2);font-size:14px;margin-top:7px;overflow-wrap:anywhere}
  .field input,.field textarea{background:var(--panel);color:var(--ink);border:1px solid var(--rule-2);border-radius:4px;padding:13px;font:inherit}.field label{color:var(--ink)}.form-note{color:var(--ink-2);font-size:14px}
  .resume-sheet{--ink:#17212d;--ink-2:#445363;--ink-3:#526174;--rule:#c9d1da;--rule-2:#b1bcc8;--link:#234fad;background:white;color:var(--ink);padding:34px;border:1px solid #d5dcd3;border-radius:3px;color-scheme:light}.resume-sheet a{color:#234fad}.resume-sheet .resume-entry__org,.resume-sheet .resume-entry__dates{color:#505d6b}.resume-sheet h2,.resume-sheet h3{color:#17212d}.resume-actions{margin-bottom:24px}.resume{max-width:100%}
  @media(max-width:900px){.top__inner{flex-wrap:wrap;gap:10px;padding-block:16px}.top__nav{gap:18px}.editorial-hero{grid-template-columns:1fr 190px;gap:25px;padding-top:60px}.editorial-hero h1{font-size:58px}.work-row{grid-template-columns:28px 1fr 160px;gap:20px}.experience-band,.personal-note{padding:30px;gap:25px}}
  @media(max-width:650px){.top__inner{display:grid;grid-template-columns:1fr auto}.top__name{font-size:16px}.top__nav{grid-row:2;grid-column:1/-1;gap:23px;flex-wrap:wrap}.top__nav a{font-size:13px}.theme-toggle{grid-column:2;grid-row:1;padding:8px 10px;font-size:13px}.editorial-hero{grid-template-columns:1fr;padding:44px 0 35px;gap:30px}.editorial-hero h1{font-size:clamp(43px,10.8vw,64px);margin:22px 0}.hero-intro{font-size:17px}.hero-aside{display:flex;gap:30px;flex-wrap:wrap;border-left:0;border-top:1px solid var(--rule);padding:20px 0 0;margin:0}.hero-aside p{margin-bottom:0}.expertise-strip{font-size:12px;gap:12px 20px;justify-content:start}.section-heading{margin-top:50px;flex-direction:column;align-items:start;gap:18px}.section-heading h2{font-size:34px}.work-row{grid-template-columns:24px 1fr;gap:14px;padding:28px 0}.work-row h3{font-size:26px}.work-result{grid-column:2;min-height:0;padding:15px 20px;display:flex;align-items:center;gap:18px}.work-result strong{font-size:32px}.work-result span{margin:0}.experience-band,.personal-note{grid-template-columns:1fr;padding:27px;gap:28px;margin-top:35px}.personal-note{padding-inline:0;margin-top:0}.career-row{grid-template-columns:85px 1fr;gap:12px}.outro{flex-direction:column;align-items:start;padding-top:40px}.outro h2{font-size:36px}.foot{margin-top:50px}.contact-grid{grid-template-columns:1fr;gap:30px}.resume-sheet{padding:19px;overflow-wrap:anywhere}.stint{grid-template-columns:1fr}.page-head{padding-top:40px}}
  @media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
}
