:root{
      --bg:#f4efe4;
      --bg2:#ebe3d3;
      --surface:rgba(255,255,255,.68);
      --surface2:#fffaf0;
      --text:#172026;
      --muted:#5f6b72;
      --line:rgba(23,32,38,.14);
      --accent:#315d64;
      --accent2:#b56d47;
      --accentSoft:rgba(49,93,100,.10);
      --dark:#17353a;
      --shadow:0 22px 55px rgba(40,49,53,.10);
      --max:1180px;
      --radius:22px;
    }

    *{box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{
      margin:0;
      color:var(--text);
      font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
      line-height:1.6;
      background:
        linear-gradient(rgba(244,239,228,.93),rgba(244,239,228,.93)),
        repeating-linear-gradient(0deg,transparent 0 31px,rgba(49,93,100,.04) 31px 32px),
        repeating-linear-gradient(90deg,transparent 0 31px,rgba(49,93,100,.04) 31px 32px);
    }

    a{color:inherit;text-decoration:none}
    .container{width:min(calc(100% - 40px),var(--max));margin:0 auto}

    header{
      position:sticky;top:0;z-index:20;
      backdrop-filter:blur(14px);
      background:rgba(244,239,228,.84);
      border-bottom:1px solid var(--line);
    }
    .nav{
      min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:24px;
    }
    .brand{font-weight:850;letter-spacing:-.025em}
    .brand span{color:var(--accent)}
    .nav-links{display:flex;gap:24px;color:var(--muted);font-size:.95rem}
    .nav-links a:hover{color:var(--text)}

    .btn{
      display:inline-flex;align-items:center;justify-content:center;gap:8px;
      min-height:46px;padding:0 18px;border-radius:999px;border:1px solid var(--line);
      font-weight:750;transition:.2s ease;
    }
    .btn:hover{transform:translateY(-2px)}
    .btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}
    .btn-secondary{background:rgba(255,255,255,.45)}

    .hero{
      min-height:78vh;display:grid;grid-template-columns:1.25fr .75fr;
      align-items:center;gap:68px;padding:88px 0 74px;
    }
    .eyebrow{
      text-transform:uppercase;letter-spacing:.16em;font-weight:850;
      color:var(--accent);font-size:.76rem;margin-bottom:16px;
    }
    h1,h2,h3{margin-top:0;line-height:1.07;letter-spacing:-.035em}
    h1{font-size:clamp(3rem,7vw,6.5rem);max-width:9ch;margin-bottom:18px}
    .hero h2{font-size:clamp(1.8rem,3vw,3rem);color:var(--accent);max-width:13ch;margin-bottom:28px}
    .hero p{color:var(--muted);font-size:1.08rem;max-width:67ch}
    .hero strong{color:var(--text)}
    .hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}

    .portrait{
      aspect-ratio:4/5;border:1px solid var(--line);border-radius:32px;overflow:hidden;
      background:linear-gradient(145deg,rgba(49,93,100,.20),rgba(181,109,71,.10)),var(--bg2);
      box-shadow:var(--shadow);display:grid;place-items:center;text-align:center;color:var(--muted);
      padding:30px;position:relative;
    }
    .portrait:before,.portrait:after{
      content:"";position:absolute;border:1px solid rgba(49,93,100,.24);border-radius:50%;
    }
    .portrait:before{width:70%;height:70%;left:15%;top:10%}
    .portrait:after{width:90%;height:90%;left:5%;top:4%}
    .portrait strong{display:block;color:var(--text);font-size:1.1rem;margin-bottom:6px;position:relative;z-index:1}

    section{padding:92px 0;border-top:1px solid var(--line)}
    .section-head{
      display:grid;grid-template-columns:.72fr 1.28fr;gap:40px;align-items:start;margin-bottom:42px;
    }
    .section-head h2{font-size:clamp(2.3rem,5vw,4.4rem);margin-bottom:0}
    .section-head p{color:var(--muted);font-size:1.05rem;max-width:72ch;margin-top:6px}

    .feature-panel{
      background:linear-gradient(135deg,#193c42,#2c555b);color:white;border-radius:32px;
      padding:42px;box-shadow:var(--shadow);position:relative;overflow:hidden;
    }
    .feature-panel:after{
      content:"";position:absolute;width:360px;height:360px;border:1px solid rgba(255,255,255,.14);
      border-radius:50%;right:-100px;top:-120px;
    }
    .feature-panel .eyebrow{color:#d9ece8}
    .feature-panel h2{font-size:clamp(2.5rem,5vw,4.8rem);max-width:14ch}
    .feature-panel h3{font-size:1.35rem;font-weight:650;opacity:.88}
    .feature-panel p{color:rgba(255,255,255,.82);max-width:76ch}
    .feature-panel .meta{margin:24px 0;font-weight:800}

    .grid{display:grid;gap:20px}
    .grid-3{grid-template-columns:repeat(3,1fr)}
    .grid-4{grid-template-columns:repeat(4,1fr)}
    .grid-2{grid-template-columns:repeat(2,1fr)}

    .card{
      background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
      padding:26px;box-shadow:0 12px 30px rgba(40,49,53,.05);
    }
    .card h3{font-size:1.4rem;margin:12px 0}
    .card p{color:var(--muted)}
    .tag{
      text-transform:uppercase;letter-spacing:.11em;font-size:.73rem;
      font-weight:850;color:var(--accent);
    }
    .links{display:flex;gap:16px;flex-wrap:wrap;font-weight:750;font-size:.95rem}
    .coming-soon-link{color:var(--muted);font-weight:750}

    .about-panel{
      display:grid;grid-template-columns:1.2fr .8fr;gap:42px;align-items:start;
    }
    .about-panel h2{font-size:clamp(2.7rem,5vw,4.6rem)}
    .about-panel p{color:var(--muted);font-size:1.05rem}
    .credentials{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
    .credential{
      background:rgba(49,93,100,.075);
      border:1px solid rgba(49,93,100,.14);
      border-radius:20px;
      padding:22px;
      font-weight:800;
    }

    .current-work .card{min-height:250px;display:flex;flex-direction:column}
    .current-work .links{margin-top:auto}

    .expertise-card{padding:28px}
    .expertise-card .mini{color:var(--accent2);font-weight:800;font-size:.86rem}
    .expertise-card h3{font-size:1.55rem;margin:8px 0 10px}

    .timeline{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;position:relative}
    .timeline:before{
      content:"";position:absolute;left:2%;right:2%;top:28px;height:1px;background:var(--line);z-index:0;
    }
    .era{position:relative;z-index:1}
    .era-dot{
      width:12px;height:12px;border-radius:50%;background:var(--accent);margin-bottom:18px;
      box-shadow:0 0 0 7px var(--bg);
    }
    .era .year{font-weight:900;color:var(--accent2)}
    .era h3{font-size:1.18rem;margin:6px 0 8px}
    .era p{color:var(--muted);font-size:.92rem}
    .timeline-note{
      margin-top:38px;padding:28px;border-radius:22px;background:var(--surface2);border:1px solid var(--line);
      font-size:1.15rem;
    }

    .writing-list{display:grid;gap:14px}
    .article-row{
      display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;
      padding:22px 0;border-bottom:1px solid var(--line);
    }
    .article-row h3{font-size:1.45rem;margin:0 0 6px}
    .article-row p{color:var(--muted);margin:0}
    .article-row .status{font-weight:800;color:var(--accent)}

    .education-copy{max-width:850px}
    .education-copy p{color:var(--muted);font-size:1.05rem}
    .education-options{margin-top:30px}

    .open-engineering{
      display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:stretch;
    }
    .code-panel{
      background:#111c20;color:#e5efef;border-radius:26px;padding:28px;border:1px solid rgba(255,255,255,.06);
      box-shadow:var(--shadow);overflow:auto;
    }
    .code-panel pre{margin:0;font:500 .94rem/1.7 "SFMono-Regular",Consolas,"Liberation Mono",monospace;white-space:pre-wrap}
    .resource-pills{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0}
    .pill{
      padding:8px 12px;border-radius:999px;background:var(--accentSoft);color:var(--accent);font-weight:800;font-size:.88rem;
    }

    .philosophy{
      display:grid;grid-template-columns:1fr 1fr;gap:34px;align-items:start;
    }
    .philosophy-quote{
      font-size:clamp(2.5rem,6vw,5.2rem);line-height:1;letter-spacing:-.05em;font-weight:900;color:var(--accent)
    }
    .philosophy p{color:var(--muted);font-size:1.05rem}
    .philosophy .question{color:var(--text);font-weight:850;font-size:1.3rem;margin:28px 0}

    .video-box{
      aspect-ratio:16/9;border-radius:28px;border:1px solid var(--line);box-shadow:var(--shadow);
      background:linear-gradient(rgba(24,46,51,.4),rgba(24,46,51,.4)),
      repeating-linear-gradient(45deg,rgba(255,255,255,.05) 0 10px,transparent 10px 20px),#315d64;
      color:#fff;display:grid;place-items:center;text-align:center;
    }
    .play{width:74px;height:74px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--accent);font-size:1.5rem;margin:0 auto 14px}

    .contact-panel{
      display:grid;grid-template-columns:1fr auto;gap:32px;align-items:end;
      background:var(--surface2);padding:38px;border:1px solid var(--line);border-radius:30px;box-shadow:var(--shadow);
    }
    .contact-panel h2{font-size:clamp(2.5rem,5vw,4.5rem);margin-bottom:16px}
    .contact-panel p{color:var(--muted);max-width:66ch}

    footer{padding:54px 0 26px;border-top:1px solid var(--line);background:rgba(235,227,211,.55)}
    .footer-grid{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:34px}
    .footer-grid h4{margin:0 0 14px;font-size:.88rem;text-transform:uppercase;letter-spacing:.1em}
    .footer-grid p,.footer-grid a{color:var(--muted);font-size:.94rem}
    .footer-grid a{display:block;margin:8px 0}
    .footer-bottom{
      margin-top:40px;padding-top:22px;border-top:1px solid var(--line);display:flex;justify-content:space-between;
      gap:20px;flex-wrap:wrap;color:var(--muted);font-size:.9rem;
    }
    .footer-principle{font-weight:850;color:var(--accent)}



    .section-head-editorial{
      grid-template-columns:1fr;
      gap:0;
      margin-bottom:34px;
    }

    .section-head-editorial > div{
      max-width:900px;
    }

    .section-head-editorial h2{
      max-width:16ch;
    }

    .heading-rule{
      width:88px;
      height:2px;
      margin-top:18px;
      background:var(--accent2);
      opacity:.72;
    }

    .section-kicker{
      margin-top:8px !important;
      max-width:58ch !important;
      font-size:.98rem !important;
      color:#748087 !important;
    }

    .article-list{
      border-top:1px solid var(--line);
      border-bottom:1px solid var(--line);
      background:rgba(255,255,255,.32);
      border-radius:22px;
      overflow:hidden;
    }

    .article-item{
      display:grid;
      grid-template-columns:192px 1fr;
      gap:24px;
      align-items:center;
      padding:24px;
      border-bottom:1px solid var(--line);
      background:rgba(255,255,255,.28);
      transition:background .2s ease, transform .2s ease;
    }

    .article-item:last-child{border-bottom:0}

    .article-item:hover{
      background:rgba(255,255,255,.62);
    }

    .article-thumb{
      width:192px;
      aspect-ratio:1/1;
      border-radius:12px;
      border:1px solid var(--line);
      overflow:hidden;
      position:relative;
      display:flex;
      align-items:flex-end;
      padding:16px;
      color:white;
      box-shadow:0 8px 22px rgba(40,49,53,.08);
      background:#244b51;
    }

    .article-thumb:before,
    .article-thumb:after{
      content:"";
      position:absolute;
      border:1px solid rgba(255,255,255,.24);
    }

    .article-thumb:before{
      inset:18px 24px 50px 18px;
      border-radius:12px;
    }

    .article-thumb:after{
      width:80px;height:80px;
      border-radius:50%;
      right:-18px;top:-14px;
    }

    .article-thumb.rag{
      background:
        linear-gradient(145deg,rgba(49,93,100,.25),rgba(181,109,71,.22)),
        #1d3d42;
    }

    .article-thumb.embedding{
      background:
        radial-gradient(circle at 30% 35%,rgba(255,255,255,.20) 0 3px,transparent 4px),
        radial-gradient(circle at 58% 56%,rgba(255,255,255,.18) 0 3px,transparent 4px),
        radial-gradient(circle at 78% 28%,rgba(255,255,255,.16) 0 3px,transparent 4px),
        linear-gradient(145deg,#405f66,#1f353a);
      background-size:auto,auto,auto,auto;
    }

    .article-thumb.cv{
      background:
        linear-gradient(rgba(21,44,49,.2),rgba(21,44,49,.2)),
        repeating-linear-gradient(90deg,rgba(255,255,255,.10) 0 1px,transparent 1px 24px),
        repeating-linear-gradient(0deg,rgba(255,255,255,.10) 0 1px,transparent 1px 24px),
        #345f64;
    }

    .article-thumb.soon{
      background:
        linear-gradient(145deg,rgba(181,109,71,.20),rgba(49,93,100,.18)),
        #6d6256;
    }

    .thumb-label{
      position:relative;
      z-index:2;
      font-size:.77rem;
      text-transform:uppercase;
      letter-spacing:.12em;
      font-weight:850;
    }

    .article-content h3{
      font-size:clamp(1.35rem,2.4vw,2rem);
      line-height:1.15;
      margin:0 0 10px;
      letter-spacing:-.025em;
    }

    .article-content p{
      color:var(--muted);
      margin:0 0 14px;
      max-width:74ch;
      font-size:1rem;
    }

    .article-meta{
      display:flex;
      gap:8px;
      flex-wrap:wrap;
      align-items:center;
      color:#68757b;
      font-size:.84rem;
      font-weight:650;
    }

    .article-meta a{
      color:var(--accent);
      font-weight:800;
      margin-left:8px;
    }

    @media(max-width:700px){
      .article-item{
        grid-template-columns:110px 1fr;
        gap:16px;
        padding:18px;
      }
      .article-thumb{
        width:110px;
      }
      .article-content h3{
        font-size:1.18rem;
      }
      .article-content p{
        font-size:.92rem;
      }
    }

    @media(max-width:520px){
      .article-item{
        grid-template-columns:1fr;
      }
      .article-thumb{
        width:100%;
        aspect-ratio:16/8;
      }
    }


    .hero-profile{
      display:grid;
      gap:18px;
      align-self:center;
    }

    .portrait-photo{
      padding:0;
      display:block;
      overflow:hidden;
      background:var(--bg2);
    }

    .portrait-photo:before,
    .portrait-photo:after{
      display:none;
    }

    .portrait-photo img{
      width:100%;
      height:100%;
      object-fit:cover;
      display:block;
    }

    .hero-credentials{
      display:grid;
      gap:7px;
      color:var(--muted);
      font-size:.92rem;
      line-height:1.35;
    }

    .hero-credentials div:first-child{
      color:var(--text);
      font-weight:800;
    }

    .contact-panel{
      position:relative;
      overflow:hidden;
      background:
        linear-gradient(rgba(23,53,58,.95),rgba(23,53,58,.95)),
        repeating-linear-gradient(0deg,transparent 0 31px,rgba(255,255,255,.055) 31px 32px),
        repeating-linear-gradient(90deg,transparent 0 31px,rgba(255,255,255,.055) 31px 32px);
      border-color:rgba(255,255,255,.08);
      color:#f7f1e6;
    }

    .contact-panel:after{
      content:"";
      position:absolute;
      width:420px;
      height:420px;
      border:1px solid rgba(255,255,255,.10);
      border-radius:50%;
      right:-160px;
      top:-170px;
      pointer-events:none;
    }

    .contact-panel .eyebrow{
      color:#d9ece8;
    }

    .contact-panel h2{
      color:#fffaf0;
    }

    .contact-panel p{
      color:rgba(255,250,240,.78);
    }

    .contact-panel p strong{
      color:#fffaf0;
    }

    .contact-panel .btn-primary{
      background:#f4efe4;
      color:#17353a;
      border-color:#f4efe4;
    }

    .contact-panel .btn-secondary{
      background:transparent;
      color:#fffaf0;
      border-color:rgba(255,255,255,.34);
    }


    .section-shell{
      background:rgba(255,255,255,.46);
      border:1px solid var(--line);
      border-radius:28px;
      padding:30px;
      box-shadow:0 12px 32px rgba(40,49,53,.045);
    }

    .section-shell.flush{
      padding:0;
      overflow:hidden;
    }

    .section-shell .grid{
      gap:18px;
    }

    .section-shell .card{
      background:rgba(255,255,255,.42);
      box-shadow:none;
    }

    .timeline-shell{
      padding:32px 30px 28px;
    }

    .education-shell{
      display:grid;
      gap:28px;
    }

    .open-engineering-shell{
      padding:30px;
    }

    @media(max-width:640px){
      .section-shell,
      .timeline-shell,
      .open-engineering-shell{
        padding:20px;
      }
    }


    /* Graphical career progression */
    .graphical-timeline{
      display:grid;
      grid-template-columns:repeat(5,1fr);
      gap:0;
      position:relative;
      align-items:stretch;
    }
    .graphical-timeline:before{display:none}
    .t-item{
      position:relative;
      min-height:230px;
      padding:28px 24px 24px;
      background:rgba(49,93,100,.055);
      border-top:1px solid rgba(49,93,100,.13);
      border-bottom:1px solid rgba(49,93,100,.13);
      border-left:1px solid rgba(49,93,100,.13);
    }
    .t-item:first-child{border-radius:18px 0 0 18px}
    .t-item.final{
      border-radius:0 18px 18px 0;
      border-right:1px solid var(--accent);
      border-color:var(--accent);
      background:linear-gradient(145deg,#21484e,#315d64);
      color:#fff;
    }
    .t-item:not(.final):after{
      content:"";
      position:absolute;
      top:50%;
      right:-9px;
      width:16px;height:16px;
      background:#f6f1e7;
      border-top:1px solid rgba(49,93,100,.20);
      border-right:1px solid rgba(49,93,100,.20);
      transform:translateY(-50%) rotate(45deg);
      z-index:2;
    }
    .t-eyebrow{
      display:inline-block;
      margin-bottom:42px;
      color:var(--accent2);
      font-size:.76rem;
      font-weight:900;
      letter-spacing:.13em;
      text-transform:uppercase;
    }
    .t-item.final .t-eyebrow{color:#dceeea}
    .t-item h3{font-size:1.25rem;margin:0 0 12px;letter-spacing:-.025em}
    .t-item p{margin:0;color:var(--muted);font-size:.92rem;line-height:1.55}
    .t-item.final p{color:rgba(255,255,255,.78)}
    .timeline-note{
      margin-top:24px;
      background:rgba(181,109,71,.075);
      border:1px solid rgba(181,109,71,.15);
      box-shadow:none;
    }
    .timeline-note strong{display:block;margin-bottom:5px;color:var(--text)}
    @media(max-width:980px){
      .graphical-timeline{grid-template-columns:1fr;gap:12px}
      .t-item,.t-item:first-child,.t-item.final{
        min-height:auto;
        border:1px solid rgba(49,93,100,.13);
        border-radius:16px;
      }
      .t-item.final{border-color:var(--accent)}
      .t-item:not(.final):after{
        top:auto;right:50%;bottom:-9px;
        transform:translateX(50%) rotate(135deg);
      }
      .t-eyebrow{margin-bottom:14px}
    }

    @media(max-width:980px){
      .hero,.about-panel,.section-head,.open-engineering,.philosophy,.contact-panel,.footer-grid{grid-template-columns:1fr}
      .hero-profile{max-width:520px}
      .grid-4{grid-template-columns:repeat(2,1fr)}
      .grid-3{grid-template-columns:1fr}
      .timeline{grid-template-columns:1fr}
      .timeline:before{display:none}
      .era{display:grid;grid-template-columns:auto 1fr;gap:14px}
      .era-dot{margin-top:8px}
      .credentials{grid-template-columns:1fr 1fr}
      .nav-links{display:none}
    }
    @media(max-width:640px){
      .container{width:min(calc(100% - 24px),var(--max))}
      section{padding:72px 0}
      .hero{padding:66px 0 56px}
      .feature-panel,.contact-panel{padding:28px}
      .grid-4,.grid-2,.credentials{grid-template-columns:1fr}
      h1{font-size:3.15rem}
      .article-row{grid-template-columns:1fr}
    }
