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

*{
  box-sizing:border-box;
}

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
}

body{
  margin:0;
  background:#f4f4f1;
  color:#292929;
  font-family:'IBM Plex Mono',ui-monospace,SFMono-Regular,Consolas,monospace;
  font-size:16px;
  line-height:1.68;
}

a{
  color:#292929;
  text-decoration-color:#777;
  text-underline-offset:3px;
}

a:hover{
  color:#555;
  text-decoration-color:#555;
}

.wrap{
  width:min(620px,100%);
  margin:0 auto;
  padding-left:20px;
  padding-right:20px;
}

.site-header{
  position:relative;
  z-index:100;
  background:#f4f4f1;
  border-bottom:1px solid #d5d5d0;
  color:#292929;
}

.site-header .wrap{
  min-height:72px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}

.public-brand-wrap{
  min-width:0;
}

.brand{
  display:inline-block;
  color:#202020;
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:1rem;
  font-weight:700;
  letter-spacing:.055em;
  text-decoration:none;
  text-transform:uppercase;
}

.brand:hover{
  color:#555;
}

.tagline{
  margin-top:3px;
  color:#777;
  font-family:'Inter',system-ui,sans-serif;
  font-size:.78rem;
  line-height:1.35;
}

.public-nav{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:16px;
  flex-wrap:wrap;
  font-family:'IBM Plex Mono',ui-monospace,monospace;
}

.public-nav a{
  color:#666;
  font-size:.84rem;
  text-decoration:none;
}

.public-nav a:hover{
  color:#202020;
}

.public-nav a.active{
  color:#202020;
  font-weight:700;
}

.public-menu-toggle{
  display:none;
  width:40px;
  height:40px;
  min-width:40px;
  padding:0;
  border:0;
  border-radius:4px;
  background:transparent;
  color:#202020;
  font:inherit;
  font-size:24px;
  line-height:1;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}

.public-menu-toggle:hover{
  background:#e8e8e4;
}

.content{
  min-width:0;
  min-height:65vh;
  padding-top:54px;
  padding-bottom:72px;
  overflow-wrap:anywhere;
}

.content>:first-child{
  margin-top:0;
}

.content h1,
.content h2,
.content h3,
.content h4,
.content h5,
.content h6{
  color:#202020;
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-weight:600;
  line-height:1.24;
  text-wrap:balance;
  break-after:avoid;
}

.content h1{
  margin:0 0 1.35rem;
  font-size:clamp(1.8rem,5vw,2.45rem);
  letter-spacing:-.035em;
}

.content h2{
  margin:2.6rem 0 .85rem;
  font-size:1.35rem;
  letter-spacing:-.025em;
}

.content h3{
  margin:2rem 0 .65rem;
  font-size:1.08rem;
}

.content h4,
.content h5,
.content h6{
  margin:1.7rem 0 .55rem;
  font-size:1rem;
}

.content p{
  max-width:68ch;
  margin:0 0 1.15rem;
  color:#383838;
  font-size:.98rem;
  line-height:1.78;
  text-wrap:pretty;
  orphans:3;
  widows:3;
}

.content h1 + p{
  color:#555;
  font-size:1rem;
}

.content ul,
.content ol{
  margin:.7rem 0 1.3rem;
  padding-left:1.4rem;
}

.content li{
  margin:.25rem 0;
  line-height:1.7;
}

.content blockquote{
  max-width:68ch;
  margin:1.6rem 0;
  padding:.15rem 0 .15rem 1rem;
  border-left:2px solid #999;
  color:#5f5f5b;
}

.content img,
.content video,
.content iframe,
.content svg{
  max-width:100%;
}

.content img{
  height:auto;
  border-radius:4px;
}

.content table{
  width:100%;
  max-width:100%;
  border-collapse:collapse;
  background:#fff;
}

.content th,
.content td{
  padding:10px 11px;
  border:1px solid #d5d5d0;
  text-align:left;
}

.content th{
  color:#202020;
  background:#f0f0ec;
}

.content pre{
  max-width:100%;
  overflow:auto;
  padding:15px;
  border:1px solid #d5d5d0;
  border-radius:4px;
  background:#ecece8;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
}

.content code{
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:.92em;
}

.content hr{
  margin:2.5rem 0;
  border:0;
  border-top:1px solid #d5d5d0;
}

.footer{
  padding:25px 0 38px;
  border-top:1px solid #d5d5d0;
  color:#777;
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:.78rem;
}

.footer a{
  color:#666;
}

/* Portfolio plugin */
.rc-portfolio{
  border-top-color:#d5d5d0!important;
}

.rc-portfolio-item{
  border-bottom-color:#d5d5d0!important;
}

.rc-portfolio-item summary{
  padding:14px 0!important;
}

.rc-portfolio-title{
  color:#292929;
}

.rc-portfolio-year{
  color:#777;
}

.rc-portfolio-details{
  color:#444;
}

/* Downloads plugin */
.rc-downloads{
  border-top-color:#d5d5d0!important;
}

.rc-downloads li{
  border-bottom-color:#d5d5d0!important;
}

/* Contact form */
.rc-contact-form input,
.rc-contact-form textarea{
  width:100%;
  border:1px solid #c8c8c3!important;
  border-radius:4px!important;
  background:#fff!important;
  color:#fff!important;
  font:inherit!important;
}

.rc-contact-form input:focus,
.rc-contact-form textarea:focus{
  border-color:#777!important;
  outline:none;
}

.rc-contact-form button{
  border:1px solid #292929!important;
  border-radius:4px!important;
  background:#292929!important;
  color:#fff!important;
  font:inherit!important;
  font-weight:600!important;
}

.rc-contact-form button:hover{
  background:#444!important;
}

/* Status and error messages */
.rc-form-message,
.notice,
.error,
.success,
.warning{
  display:block;
  max-width:68ch;
  margin:0 0 1.25rem;
  padding:11px 13px;
  border:1px solid #c8c8c3;
  border-radius:4px;
  background:#f0f0ec;
  color:#292929;
  font-size:.94rem;
  line-height:1.5;
  overflow-wrap:anywhere;
}

.rc-form-message.error,
.notice.error,
.error{
  border-color:#9a5c5c;
  background:#3b2929;
  color:#ffd5d5;
}

.rc-form-message.ok,
.notice.success,
.success{
  border-color:#58745d;
  background:#27352a;
  color:#d8f2dc;
}

.notice.warning,
.warning{
  border-color:#8a7848;
  background:#383326;
  color:#f3e5b7;
}

.site-mode-name{
  color:#777;
}

.site-mode-main h1{
  color:#202020;
}

@media(max-width:640px){
  .wrap{
    padding-left:17px;
    padding-right:17px;
  }

  .site-header .wrap{
    min-height:64px;
    padding-top:10px;
    padding-bottom:10px;
  }

  .public-menu-toggle{
    display:inline-flex;
  }

  .public-nav{
    display:none;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    z-index:1000;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    background:#f4f4f1;
    border-top:1px solid #d5d5d0;
    border-bottom:1px solid #d5d5d0;
  }

  .public-nav.open{
    display:flex;
  }

  .public-nav a{
    display:block;
    width:100%;
    padding:14px 17px;
    border-bottom:1px solid #deded9;
    font-size:.95rem;
  }

  .public-nav a:last-child{
    border-bottom:0;
  }

  .content{
    padding-top:38px;
    padding-bottom:54px;
  }

  .content h1{
    font-size:1.8rem;
    line-height:1.18;
  }

  .content h2{
    margin-top:2.15rem;
    font-size:1.25rem;
  }

  .content p{
    font-size:.96rem;
    line-height:1.72;
  }
}

@media print{
  body{
    background:#fff;
    color:#111;
  }

  .site-header,
  .public-menu-toggle{
    display:none!important;
  }

  .wrap{
    width:100%;
    max-width:none;
    padding:0;
  }

  .content{
    padding:0;
  }

  .content h1,
  .content h2,
  .content h3,
  .content h4,
  .content h5,
  .content h6,
  .content p,
  a{
    color:#111!important;
  }

  .footer{
    color:#444;
    border-top:1px solid #bbb;
  }
}


/* KDXCODE light palette overrides */
.site-header{
  background:#f4f4f1;
  border-bottom-color:#d5d5d0;
  color:#292929;
}
.brand,
.public-nav a.active{
  color:#202020;
}
.brand:hover,
.public-nav a:hover{
  color:#555;
}
.public-nav a{
  color:#666;
}
.public-menu-toggle{
  color:#292929;
}
.public-menu-toggle:hover{
  background:#e8e8e4;
}
.content h1,
.content h2,
.content h3,
.content h4,
.content h5,
.content h6{
  color:#202020;
}
.rc-portfolio-title{
  color:#292929;
}
.rc-portfolio-year{
  color:#777;
}
.footer{
  border-top-color:#d5d5d0;
  color:#777;
}
@media(max-width:640px){
  .public-nav{
    background:#f4f4f1;
    border-top-color:#d5d5d0;
    border-bottom-color:#d5d5d0;
  }
  .public-nav a{
    border-bottom-color:#deded9;
  }
}

/* Form readability — keep every form control and its text visible */
.content form,
.rc-contact-form{
  color:#292929;
}

.content label,
.content legend,
.rc-contact-form label,
.rc-contact-form legend{
  color:#292929!important;
  font-family:'IBM Plex Mono',ui-monospace,SFMono-Regular,Consolas,monospace;
}

.content label span,
.content .field,
.content .field span,
.rc-contact-form label span,
.rc-contact-form .field,
.rc-contact-form .field span{
  color:#292929!important;
}

.content input,
.content textarea,
.content select,
.rc-contact-form input,
.rc-contact-form textarea,
.rc-contact-form select{
  width:100%;
  max-width:100%;
  border:1px solid #bdbdb7!important;
  border-radius:4px!important;
  background:#fff!important;
  color:#292929!important;
  -webkit-text-fill-color:#292929;
  caret-color:#292929;
  font-family:'IBM Plex Mono',ui-monospace,SFMono-Regular,Consolas,monospace!important;
  font-size:16px!important;
  line-height:1.45!important;
}

.content input,
.content select,
.rc-contact-form input,
.rc-contact-form select{
  min-height:44px;
  padding:9px 10px!important;
}

.content textarea,
.rc-contact-form textarea{
  min-height:130px;
  padding:10px!important;
  resize:vertical;
}

.content input::placeholder,
.content textarea::placeholder,
.rc-contact-form input::placeholder,
.rc-contact-form textarea::placeholder{
  color:#777!important;
  -webkit-text-fill-color:#777;
  opacity:1;
}

.content input:focus,
.content textarea:focus,
.content select:focus,
.rc-contact-form input:focus,
.rc-contact-form textarea:focus,
.rc-contact-form select:focus{
  border-color:#555!important;
  background:#fff!important;
  color:#202020!important;
  -webkit-text-fill-color:#202020;
  outline:2px solid #d6d6d1!important;
  outline-offset:1px;
}

.content select option,
.rc-contact-form select option{
  background:#fff;
  color:#292929;
}

.content input[type="checkbox"],
.content input[type="radio"],
.rc-contact-form input[type="checkbox"],
.rc-contact-form input[type="radio"]{
  width:auto;
  min-height:0;
  padding:0!important;
  accent-color:#292929;
}

.content input[type="file"],
.rc-contact-form input[type="file"]{
  padding:6px!important;
  color:#292929!important;
}

.content input[type="file"]::file-selector-button,
.rc-contact-form input[type="file"]::file-selector-button{
  margin-right:10px;
  padding:7px 10px;
  border:1px solid #aaa;
  border-radius:3px;
  background:#ecece8;
  color:#292929;
  font:inherit;
  cursor:pointer;
}

.content button,
.content input[type="submit"],
.content input[type="button"],
.content input[type="reset"],
.rc-contact-form button,
.rc-contact-form input[type="submit"]{
  min-height:42px;
  padding:8px 13px!important;
  border:1px solid #292929!important;
  border-radius:4px!important;
  background:#292929!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff;
  font-family:'IBM Plex Mono',ui-monospace,SFMono-Regular,Consolas,monospace!important;
  font-size:.94rem!important;
  font-weight:600!important;
  line-height:1.3!important;
  cursor:pointer;
}

.content button:hover,
.content input[type="submit"]:hover,
.content input[type="button"]:hover,
.content input[type="reset"]:hover,
.rc-contact-form button:hover,
.rc-contact-form input[type="submit"]:hover{
  background:#444!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff;
}

.content button:disabled,
.content input:disabled,
.content textarea:disabled,
.content select:disabled,
.rc-contact-form button:disabled,
.rc-contact-form input:disabled,
.rc-contact-form textarea:disabled,
.rc-contact-form select:disabled{
  opacity:.6;
  cursor:not-allowed;
}

.content .muted,
.content .help,
.content .form-help,
.content small,
.rc-contact-form .muted,
.rc-contact-form .help,
.rc-contact-form small{
  color:#666!important;
}

.content fieldset,
.rc-contact-form fieldset{
  min-width:0;
  margin:0 0 1rem;
  padding:12px;
  border:1px solid #d5d5d0;
}

.content form a,
.rc-contact-form a{
  color:#292929;
}
