:root{color-scheme:dark;--bg:#0c1014;--panel:#11171c;--line:#283037;--text:#e8e9e7;--muted:#a4adb4;--accent:#b8c8c9;--soft:#8fae9e;font:16px/1.75 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}a{color:inherit;text-underline-offset:4px}a:hover{color:#fff}button,input,select{font:inherit}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #b8d5ca;outline-offset:5px}.wrap{max-width:1050px;width:calc(100% - 56px);margin:auto}header{border-bottom:1px solid var(--line)}.header-inner{display:flex;justify-content:space-between;gap:24px;align-items:center;min-height:82px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none}.brand .mark{width:33px;height:33px;object-fit:contain}.brand .wordmark{width:145px;height:auto;display:block}nav{display:flex;gap:23px;font-size:13px;align-items:center}nav a{text-decoration:none;color:var(--muted)}nav a[aria-current=page]{color:var(--text)}.menu{display:none;padding:7px 12px;border:1px solid var(--line);background:transparent;color:var(--text);border-radius:4px}.skip{position:absolute;top:-80px;left:15px;background:var(--text);color:var(--bg);padding:10px;z-index:5}.skip:focus{top:10px}.hero{text-align:center;max-width:760px;padding:70px 0 60px;margin:auto}.hero-logo{width:min(360px,80%);height:auto;margin:0 auto 34px;display:block}.eyebrow{font:10px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace;text-transform:uppercase;letter-spacing:1.8px;color:var(--muted);margin:0 0 14px}h1,h2,h3{line-height:1.25;letter-spacing:-.025em;margin-top:0;font-weight:650}h1{font-size:clamp(30px,4vw,43px);margin-bottom:22px}h2{font-size:26px;margin-bottom:10px}h3{font-size:18px;margin-bottom:8px}p{margin-top:0}.hero p{max-width:640px;margin-left:auto;margin-right:auto;color:var(--muted);font-size:17px}.hero p:last-child{margin-bottom:0}.hero .links{margin-top:25px;font-size:13px}.hero .links a{margin:0 12px}.section{padding:40px 0;border-top:1px solid var(--line)}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:25px;margin-bottom:18px}.section-heading>a{font-size:12px;white-space:nowrap;color:var(--muted)}.section-intro{font-size:14px;color:var(--muted);max-width:690px;margin-bottom:26px}.projects{display:grid;grid-template-columns:1fr 1fr;column-gap:44px}.project{padding:22px 0;border-top:1px solid var(--line)}.project-meta{display:flex;justify-content:space-between;align-items:start;gap:15px}.project h3 a{text-decoration:none}.project p{font-size:14px;color:var(--muted);margin-bottom:12px}.status{font:10px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace;color:#b3c9bd;white-space:nowrap}.status.dev{color:#cbbda3}.small-links{display:flex;gap:20px;flex-wrap:wrap;font-size:12px}.small-links a{color:var(--muted)}.photo-empty{padding:30px;border:1px dashed var(--line);border-radius:3px;color:var(--muted);font-size:14px}.photo-empty p{margin:0}.photo-empty strong{color:var(--text);display:block;font-weight:500;margin-bottom:5px}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.gallery button{cursor:pointer;text-align:left;border:0;padding:0;background:transparent;color:var(--muted)}.gallery img{display:block;width:100%;height:240px;object-fit:cover;border-radius:2px}.gallery span{display:block;font-size:12px;margin-top:7px}.log-row{display:grid;grid-template-columns:130px 1fr;gap:25px;padding:22px 0;border-top:1px solid var(--line)}.log-row time{font:11px/1.7 ui-monospace,SFMono-Regular,monospace;color:var(--muted);padding-top:4px}.log-row h3{margin-bottom:8px}.log-row h3 a{text-decoration:none}.log-row p{color:var(--muted);font-size:14px;margin:0}.log-project{font:10px ui-monospace,SFMono-Regular,monospace;color:var(--soft);margin-top:12px}.gear-list{padding:0;margin:0;list-style:none}.gear-list li{padding:16px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:150px 1fr;gap:20px}.gear-list .category{font-size:12px;color:var(--muted)}.gear-list strong{font-size:15px;font-weight:550}.gear-list p{font-size:13px;color:var(--muted);margin:3px 0 0}.page-head{padding:65px 0 30px;max-width:800px}.page-head h1{font-size:36px}.page-head .intro{color:var(--muted);max-width:680px}.page-content{padding-bottom:65px;min-height:35vh}.prose{max-width:730px}.prose h2{font-size:23px;margin-top:35px}.prose h3{margin-top:28px}.prose p,.prose li{color:#b9c0c5}.prose img{display:block;max-width:100%;height:auto;margin:25px 0}.prose pre{background:var(--panel);padding:20px;overflow:auto}.prose blockquote{margin-left:0;padding-left:20px;border-left:2px solid var(--soft)}.notice{padding:18px 20px;border-left:2px solid #82958c;background:var(--panel);font-size:12px;color:var(--muted);margin:30px 0}.notice p{margin:0}.notice a{color:inherit}.detail-meta{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:20px;margin-bottom:24px}.button{display:inline-block;border:1px solid #64756d;padding:9px 16px;border-radius:4px;font-size:13px;text-decoration:none;margin:12px 0}.filters{display:flex;align-items:center;gap:12px;margin-bottom:26px}.filters label{font-size:12px;color:var(--muted)}.filters input,.filters select{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:4px;padding:9px 12px;min-width:0}.filters input{flex:1}.status-table{width:100%;border-collapse:collapse}.status-table th,.status-table td{text-align:left;padding:16px 8px;border-bottom:1px solid var(--line);font-size:14px}.status-table th{font-size:11px;color:var(--muted);font-weight:400}footer{border-top:1px solid var(--line);padding:26px 0 35px}.footer-top{display:flex;justify-content:space-between;gap:20px;align-items:start;font-size:11px;color:var(--muted)}.footer-top nav{font-size:11px;gap:17px}.footer-warning{max-width:840px;font-size:11px;color:#929ca3;line-height:1.8;margin:20px 0 0}.footer-warning a{color:inherit}.breadcrumb{font-size:12px;color:var(--muted);margin-bottom:24px}dialog{background:var(--bg);color:var(--text);border:1px solid var(--line);width:min(1000px,95vw);max-height:90vh}dialog::backdrop{background:#000c}dialog img{display:block;max-width:100%;max-height:70vh;margin:auto}dialog button{float:right;background:var(--panel);color:var(--text);border:1px solid var(--line);padding:7px 15px;margin-bottom:15px;cursor:pointer}dialog p{font-size:13px;margin-top:15px}[hidden]{display:none!important}@media(max-width:800px){nav{gap:14px;font-size:12px}.brand .wordmark{width:122px}.brand .mark{width:28px;height:28px}.header-inner{gap:16px}.projects{column-gap:26px}.gallery{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.wrap{width:calc(100% - 36px)}.header-inner{min-height:72px}.brand .wordmark{width:140px}.menu{display:block}header{position:relative}header nav{display:none;position:absolute;top:72px;left:0;right:0;background:var(--bg);padding:20px;border-bottom:1px solid var(--line);z-index:3;flex-direction:column;align-items:start;font-size:14px}header nav.open{display:flex}.hero{padding:45px 0}.hero-logo{width:290px;max-width:90%;margin-bottom:28px}.hero p{font-size:15px}.hero .links{font-size:12px}.hero .links a{margin:0 8px}.section{padding:30px 0}.section-heading{gap:12px}h2{font-size:23px}.projects{grid-template-columns:1fr}.project{padding:19px 0}.gallery{grid-template-columns:1fr}.log-row{grid-template-columns:1fr;gap:8px}.gear-list li{grid-template-columns:100px 1fr;gap:15px}.footer-top{flex-direction:column}.footer-top nav{flex-wrap:wrap}.filters{flex-wrap:wrap}.filters label{width:100%}.filters input{width:100%}.page-head{padding-top:40px}.page-head h1{font-size:31px}.status-table td{font-size:12px}.photo-empty{padding:22px}.section-heading>a{font-size:11px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}

.design-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:28px 0}.design-gallery figure{margin:0;min-width:0}.prose .design-gallery img{width:100%;height:auto;margin:0}.design-gallery video{display:block;width:100%;max-height:65vh;background:#080b0e}.design-gallery figcaption{font-size:12px;color:var(--muted);margin-top:8px}@media(max-width:620px){.design-gallery{grid-template-columns:1fr}}


/* About Me layout */
.about-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 30px;
  align-items: start;
}

.about-copy {
  min-width: 0;
}

.about-layout .about-photo {
  display: block;
  width: 300px;
  max-width: 100%;
  height: auto;
  margin: 0;
  border-radius: 5px;
  justify-self: end;
}

/* Mobile layout */
@media (max-width: 700px) {
  .about-layout {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .about-layout .about-photo {
    width: 300px;
    justify-self: start;
  }
}
