:root{
    --paper:#FAF9F6;
    --paper-dim:#EEEDE8;
    --ink:#111110;
    --ink-soft:#5E5D59;
    --red:#1A1A18;
    --red-deep:#000000;
    --navy:#26251F;
    --brass:#8C8B84;
    --moss:#4A4944;
    --line: rgba(17,17,16,0.13);
    --line-strong: rgba(17,17,16,0.32);
    --serif:'Petrona', Georgia, serif;
    --sans:'Plus Jakarta Sans', -apple-system, sans-serif;
    --mono:'IBM Plex Mono', monospace;
    --ease: cubic-bezier(.16,1,.3,1);
    --ease-soft: cubic-bezier(.22,.85,.32,1);
  }

  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--paper);
    color:var(--ink);
    font-family:var(--sans);
    overflow-x:hidden;
    -webkit-font-smoothing:antialiased;
    position:relative;
  }
  body::before{
    content:''; position:fixed; inset:0; pointer-events:none; z-index:1; opacity:.5; mix-blend-mode:multiply;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E");
  }
  img{display:block; max-width:100%;}
  a{color:inherit; text-decoration:none;}

  ::selection{background:var(--red); color:var(--paper);}

  .wrap{max-width:1240px; margin:0 auto; padding:0 32px;}

  /* ---------- SCROLL PROGRESS ---------- */
  #progress{
    position:fixed; top:0; left:0; height:3px; background:var(--red);
    width:0%; z-index:999; transition:width .1s linear;
  }

  /* ---------- NAV ---------- */
  nav{
    position:fixed; top:3px; left:0; right:0; z-index:900;
    background:rgba(250,249,246,0.88);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
    transition:transform .4s ease, box-shadow .4s ease;
  }
  nav .navwrap{
    max-width:1240px; margin:0 auto; padding:16px 32px;
    display:flex; align-items:center; justify-content:space-between;
  }
  .nav-mark{
    font-family:var(--serif); font-weight:700; font-size:19px; letter-spacing:0.02em;
  }
  .nav-mark span{color:var(--red);}
  .nav-links{display:flex; gap:34px; list-style:none;}
  .nav-links a{
    font-family:var(--mono); font-size:11px; letter-spacing:0.12em; text-transform:uppercase;
    position:relative; padding-bottom:4px; color:var(--ink-soft);
    transition:color .25s ease;
  }
  .nav-links a::after{
    content:''; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--red);
    transition:width .3s ease;
  }
  .nav-links a:hover{color:var(--ink);}
  .nav-links a:hover::after{width:100%;}
  .nav-links a.active, .nav-links-mobile a.active{color:var(--red-deep);}
  .nav-links a.active::after{width:100%; background:var(--red-deep);}
  .nav-issue{font-family:var(--mono); font-size:10px; letter-spacing:.1em; color:var(--ink-soft); display:none;}
  @media(min-width:860px){.nav-issue{display:block;}}
  .nav-burger{display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none;}
  .nav-burger span{width:22px; height:2px; background:var(--ink);}
  @media(max-width:760px){
    .nav-links{display:none;}
    .nav-burger{display:flex;}
  }
  .nav-links-mobile{
    list-style:none; display:none; flex-direction:column;
    border-top:1px solid var(--line);
    background:var(--paper);
  }
  .nav-links-mobile.open{display:flex;}
  .nav-links-mobile li{border-bottom:1px solid var(--line);}
  .nav-links-mobile a{
    display:block; padding:16px 32px; font-family:var(--mono); font-size:12px;
    letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft);
  }
  .nav-links-mobile a:hover{color:var(--red-deep);}

  /* ---------- HERO / COVER ---------- */
  header.cover{
    position:relative;
    padding:150px 0 0 0;
    overflow:hidden;
  }
  .cover-grid{
    display:grid; grid-template-columns: 1.15fr 0.85fr; gap:56px; align-items:end;
    min-height: 78vh;
  }
  @media(max-width:900px){
    .cover-grid{grid-template-columns:1fr; min-height:auto;}
  }

  .eyebrow-row{
    display:flex; align-items:center; gap:14px; margin-bottom:22px;
  }
  .eyebrow-row .dot{width:7px; height:7px; background:var(--red); border-radius:50%;}
  .eyebrow{
    font-family:var(--mono); font-size:11.5px; letter-spacing:.16em; text-transform:uppercase;
    color:var(--red-deep); font-weight:600;
  }

  .masthead{
    font-family:var(--serif);
    font-weight:800;
    font-size:clamp(58px, 10vw, 132px);
    line-height:0.86;
    letter-spacing:-0.015em;
    overflow:hidden;
  }
  .masthead .line{display:block; overflow:hidden;}
  .masthead .line span{
    display:inline-block;
    transform:translateY(115%);
    animation:riseIn .9s cubic-bezier(.2,.9,.2,1) forwards;
  }
  @keyframes riseIn{to{transform:translateY(0);}}

  .cover-sub{
    font-family:var(--serif); font-style:italic; font-weight:400;
    font-size:clamp(17px,2.1vw,23px);
    color:var(--ink-soft); max-width:520px; margin-top:22px;
    opacity:0; animation:fadeUp .9s ease forwards; animation-delay:.6s;
  }

  @keyframes fadeUp{from{opacity:0; transform:translateY(14px);} to{opacity:1; transform:translateY(0);}}

  .cover-lines{
    margin-top:38px; display:flex; flex-direction:column; gap:10px;
    opacity:0; animation:fadeUp .9s ease forwards; animation-delay:.85s;
  }
  .cover-lines a{
    font-family:var(--mono); font-size:12.5px; letter-spacing:.04em;
    color:var(--ink); display:flex; align-items:center; gap:10px;
    padding:2px 0; width:fit-content; border-bottom:1px solid transparent;
    transition:border-color .3s ease, gap .3s ease, color .3s ease;
  }
  .cover-lines a:hover{border-color:var(--ink); gap:16px; color:var(--red-deep);}
  .cover-lines a .num{color:var(--red); font-weight:600;}

  .cover-photo{
    position:relative;
    clip-path: inset(0 0 100% 0);
    animation: wipeReveal 1.3s cubic-bezier(.65,0,.15,1) forwards;
    animation-delay:.25s;
    border:1px solid var(--line-strong);
  }
  @keyframes wipeReveal{to{clip-path:inset(0 0 0% 0);}}
  .cover-photo img{width:100%; height:640px; object-fit:cover; object-position:top center; filter:grayscale(28%) contrast(1.06);}
  @media(max-width:900px){.cover-photo img{height:420px;}}
  .cover-photo .tag{
    position:absolute; bottom:0; left:0; right:0;
    background:var(--red); color:var(--paper);
    font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase;
    padding:9px 14px; display:flex; justify-content:space-between;
  }

  .cover-rule{
    height:1px; background:var(--line-strong); margin:0;
  }
  .cover-strip{
    display:flex; flex-wrap:wrap; gap:0;
    border-top:1px solid var(--line-strong);
    margin-top:64px;
  }
  .cover-strip .item{
    flex:1 1 200px; padding:20px 26px; border-right:1px solid var(--line);
  }
  .cover-strip .item:last-child{border-right:none;}
  .cover-strip .num{
    font-family:var(--serif); font-weight:700; font-size:34px; color:var(--red-deep); line-height:1;
  }
  .cover-strip .lbl{
    font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase;
    color:var(--ink-soft); margin-top:8px;
  }

  /* ---------- SECTION SHARED ---------- */
  section{padding:120px 0;}
  .sec-head{
    display:flex; align-items:flex-end; justify-content:space-between; gap:24px;
    margin-bottom:56px; border-bottom:1px solid var(--line-strong); padding-bottom:22px;
    flex-wrap:wrap;
  }
  .sec-kicker{
    font-family:var(--mono); font-size:11px; letter-spacing:.16em; text-transform:uppercase;
    color:var(--red-deep); font-weight:600; margin-bottom:10px; display:block;
  }
  .sec-title{
    font-family:var(--serif); font-weight:700; font-size:clamp(32px,4.4vw,54px); letter-spacing:-0.01em;
  }
  .sec-meta{font-family:var(--mono); font-size:11.5px; color:var(--ink-soft); text-align:right;}

  .reveal{opacity:0; transform:translateY(34px); transition:opacity .9s var(--ease), transform .9s var(--ease);}
  .reveal.in{opacity:1; transform:translateY(0);}
  .reveal-stagger > *{opacity:0; transform:translateY(30px); transition:opacity .85s var(--ease), transform .85s var(--ease);}
  .reveal-stagger.in > *{opacity:1; transform:translateY(0);}
  .reveal-stagger.in > *:nth-child(1){transition-delay:.05s;}
  .reveal-stagger.in > *:nth-child(2){transition-delay:.13s;}
  .reveal-stagger.in > *:nth-child(3){transition-delay:.21s;}
  .reveal-stagger.in > *:nth-child(4){transition-delay:.29s;}
  .reveal-stagger.in > *:nth-child(5){transition-delay:.37s;}
  .reveal-stagger.in > *:nth-child(6){transition-delay:.45s;}

  /* ---------- PROFILE ---------- */
  .profile-grid{display:grid; grid-template-columns:1fr; gap:64px;}
  .profile-text{max-width:760px;}
  .dropcap{
    font-family:var(--serif); font-size:88px; font-weight:700; float:left; line-height:0.78;
    margin:2px 10px 0 0; color:var(--red-deep);
  }
  .profile-text p{
    font-size:17.5px; line-height:1.8; color:#1C1C1A; margin-bottom:18px;
  }

  /* ---------- SKILLS TICKER ---------- */
  .ticker-section{padding:0; background:var(--ink); overflow:hidden;}
  .ticker-band{
    background:var(--red); border-top:1px solid rgba(0,0,0,.2); border-bottom:1px solid rgba(0,0,0,.2);
    padding:16px 0; overflow:hidden; position:relative;
  }
  .ticker-track{
    display:flex; white-space:nowrap; width:max-content;
    animation:tickerMove 42s linear infinite;
  }
  .ticker-band:hover .ticker-track{animation-play-state:paused;}
  @keyframes tickerMove{from{transform:translateX(0);} to{transform:translateX(-50%);}}
  .ticker-track span{
    font-family:var(--mono); font-size:14px; letter-spacing:.03em; color:var(--paper);
    padding:0 26px; display:flex; align-items:center; gap:26px; text-transform:uppercase;
  }
  .ticker-track span::after{content:'—'; color:rgba(250,249,246,.5);}
  .ticker-band.alt{background:var(--navy);}
  .ticker-band.alt .ticker-track{animation-direction:reverse; animation-duration:52s;}
  .ticker-band.alt span::after{content:'◆'; font-size:8px; color:rgba(250,249,246,.4);}

  /* ---------- EXPERIENCE ---------- */
  .timeline{position:relative; padding-left:2px;}
  .tl-item{
    display:grid; grid-template-columns:150px 1fr; gap:40px;
    padding:38px 0; border-top:1px solid var(--line);
    position:relative;
  }
  .tl-item:first-child{border-top:1px solid var(--line-strong);}
  .tl-item:last-child{border-bottom:1px solid var(--line-strong);}
  @media(max-width:760px){.tl-item{grid-template-columns:1fr; gap:10px;}}
  .tl-date{
    font-family:var(--mono); font-size:12px; color:var(--red-deep); letter-spacing:.03em; padding-top:4px;
  }
  .tl-role{font-family:var(--serif); font-weight:700; font-size:24px; margin-bottom:4px;}
  .tl-org{font-family:var(--sans); font-weight:500; font-size:14px; color:var(--ink-soft); margin-bottom:16px;}
  .tl-org em{font-style:normal; color:var(--brass);}
  .tl-body{list-style:none; display:flex; flex-direction:column; gap:9px;}
  .tl-body li{
    font-size:15px; line-height:1.65; color:#242320; padding-left:18px; position:relative;
  }
  .tl-body li::before{
    content:''; position:absolute; left:0; top:9px; width:6px; height:1px; background:var(--red);
  }

  /* ---------- CERT DECODER (signature) ---------- */
  .decoder-section{background:var(--navy); color:var(--paper); position:relative;}
  .decoder-section .sec-title, .decoder-section .sec-kicker{color:var(--paper);}
  .decoder-section .sec-kicker{color:#D8D6CE;}
  .decoder-section .sec-head{border-bottom-color:rgba(250,249,246,.2);}
  .decoder-section .sec-meta{color:rgba(250,249,246,.55);}

  .decoder-frame{
    border:1px solid rgba(250,249,246,.18);
    background:rgba(255,255,255,.02);
    padding:8px 0;
  }
  .decoder-row{
    display:grid; grid-template-columns:52px 1fr 190px 130px;
    align-items:center; padding:14px 22px; gap:18px;
    border-bottom:1px solid rgba(250,249,246,.09);
    font-family:var(--mono);
  }
  @media(max-width:700px){.decoder-row{grid-template-columns:34px 1fr 100px; }
    .decoder-row .d-org{display:none;}}
  .decoder-row:last-child{border-bottom:none;}
  .d-idx{color:rgba(250,249,246,.35); font-size:12px;}
  .d-title{
    font-size:15px; letter-spacing:.02em; color:var(--paper);
  }
  .d-title .cursor-blink{color:#D8D6CE;}
  .d-org{font-size:11.5px; color:rgba(250,249,246,.0); color:#D8D6CE; opacity:.85;}
  .d-year{font-size:11.5px; color:rgba(250,249,246,.45); text-align:right;}

  .decoder-note{
    margin-top:22px; font-family:var(--mono); font-size:11.5px; color:rgba(250,249,246,.45);
    display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
  }

  /* ---------- PROJECTS ---------- */
  .proj-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-strong); border:1px solid var(--line-strong);}
  @media(max-width:900px){.proj-grid{grid-template-columns:1fr;}}
  .proj-card{
    background:var(--paper); padding:38px 34px; display:flex; flex-direction:column; gap:16px;
    transition:background .35s ease, transform .35s ease;
    position:relative; overflow:hidden;
  }
  .proj-card:hover{background:var(--paper-dim); transform:translateY(-4px);}
  .proj-tag{
    font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--red-deep);
  }
  .proj-year{
    font-family:var(--mono); font-weight:600; font-size:11px; letter-spacing:.04em; color:var(--ink-soft);
  }
  .proj-title{font-family:var(--serif); font-weight:700; font-size:25px; line-height:1.15;}
  .proj-desc{font-size:14.5px; line-height:1.7; color:var(--ink-soft); flex:1;}
  .proj-stack{
    display:flex; flex-wrap:wrap; gap:6px; margin-top:4px;
  }
  .proj-stack span{
    font-family:var(--mono); font-size:10px; letter-spacing:.04em; padding:4px 9px;
    border:1px solid var(--line-strong); color:var(--ink-soft);
  }
  .proj-link{
    font-family:var(--mono); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase;
    margin-top:8px; padding-top:14px; border-top:1px solid var(--line);
    display:flex; align-items:center; gap:8px; color:var(--ink);
  }
  .proj-link:hover{color:var(--red-deep);}
  .proj-link .arrow{transition:transform .25s ease;}
  .proj-link:hover .arrow{transform:translateX(5px);}

  /* ---------- PROJECT COVER PLATES (abstract, brand-toned) ---------- */
  .proj-cover{
    position:relative; height:170px; margin:-38px -34px 20px -34px; overflow:hidden;
    border-bottom:1px solid var(--line-strong);
  }
  .proj-cover::before{
    content:''; position:absolute; inset:0;
    background-image:
      repeating-linear-gradient(115deg, rgba(250,249,246,.09) 0px, rgba(250,249,246,.09) 1px, transparent 1px, transparent 13px);
  }
  .proj-cover .cover-mark{
    position:absolute; right:18px; bottom:-14px; font-family:var(--serif); font-weight:800;
    font-size:96px; line-height:1; color:rgba(250,249,246,.14); letter-spacing:-.02em; user-select:none;
  }
  .proj-cover .cover-num{
    position:absolute; left:18px; top:16px; font-family:var(--mono); font-size:10.5px; letter-spacing:.14em;
    text-transform:uppercase; color:rgba(250,249,246,.65);
  }
  .proj-cover--01{background:linear-gradient(135deg, var(--navy), #14140F);}
  .proj-cover--02{background:linear-gradient(135deg, var(--red-deep), #2E2E2C);}
  .proj-cover--03{background:linear-gradient(135deg, var(--moss), #23221E);}
  .proj-cover--04{background:linear-gradient(135deg, var(--ink), #3A3934);}
  .proj-cover--05{background:linear-gradient(135deg, var(--brass), #57564F);}
  .proj-cover--06{background:linear-gradient(135deg, #4A4944, #101010);}

  /* ---------- CASE STUDY META ---------- */
  .proj-role{
    font-family:var(--mono); font-size:11px; letter-spacing:.06em; color:var(--ink-soft);
    margin-top:-6px;
  }
  .proj-impact{
    display:flex; gap:22px; flex-wrap:wrap; margin-top:2px; padding-top:14px; border-top:1px solid var(--line);
  }
  .proj-impact .im{display:flex; flex-direction:column; gap:2px;}
  .proj-impact .im b{font-family:var(--serif); font-weight:700; font-size:20px; color:var(--red-deep); line-height:1;}
  .proj-impact .im span{font-family:var(--mono); font-size:9.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft);}
  .proj-links{display:flex; gap:18px; flex-wrap:wrap;}
  .proj-links .proj-link{flex:none; margin-top:0; padding-top:0; border-top:none;}

  /* ---------- HOMEPAGE: SELECTED WORK STRIP ---------- */
  .work-strip{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-strong); border:1px solid var(--line-strong);}
  @media(max-width:900px){.work-strip{grid-template-columns:1fr;}}
  .work-card{
    background:var(--paper); display:flex; flex-direction:column;
    transition:background .3s ease, transform .3s ease;
  }
  .work-card:hover{background:var(--paper-dim); transform:translateY(-4px);}
  .work-card .proj-cover{height:130px; margin:0 0 18px 0;}
  .work-card-body{padding:0 26px 28px 26px; display:flex; flex-direction:column; gap:10px; flex:1;}
  .work-card-tag{font-family:var(--mono); font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--red-deep);}
  .work-card-title{font-family:var(--serif); font-weight:700; font-size:21px; line-height:1.18;}
  .work-card-desc{font-size:13.5px; line-height:1.65; color:var(--ink-soft); flex:1;}
  .work-more{
    text-align:center; margin-top:34px;
  }
  .work-more a{
    font-family:var(--mono); font-size:11.5px; letter-spacing:.1em; text-transform:uppercase;
    border:1px solid var(--ink); padding:13px 30px; display:inline-flex; align-items:center; gap:10px;
    transition:background .25s ease, color .25s ease;
  }
  .work-more a:hover{background:var(--ink); color:var(--paper);}
  .work-more a .arrow{transition:transform .25s ease;}
  .work-more a:hover .arrow{transform:translateX(5px);}

  /* ---------- EDUCATION / FEATURE ---------- */
  .feature-grid{display:grid; grid-template-columns:0.85fr 1.15fr; gap:60px; align-items:center;}
  @media(max-width:900px){.feature-grid{grid-template-columns:1fr;}}
  .feature-photo{position:relative; border:1px solid var(--line-strong);}
  .feature-photo img{width:100%; height:520px; object-fit:cover; filter:grayscale(15%);}
  .feature-photo::before{
    content:'FIELD NOTES'; position:absolute; top:0; left:0;
    background:var(--paper); font-family:var(--mono); font-size:10px; letter-spacing:.14em;
    padding:8px 12px; border-right:1px solid var(--line-strong); border-bottom:1px solid var(--line-strong);
  }
  .edu-item{padding:22px 0; border-top:1px solid var(--line);}
  .edu-item:last-child{border-bottom:1px solid var(--line-strong);}
  .edu-date{font-family:var(--mono); font-size:11px; color:var(--red-deep); margin-bottom:6px;}
  .edu-title{font-family:var(--serif); font-weight:700; font-size:20px; margin-bottom:3px;}
  .edu-org{font-size:13.5px; color:var(--ink-soft); margin-bottom:8px;}
  .edu-detail{font-size:13.5px; color:#2E2D29; line-height:1.6;}
  .grade-row{display:flex; flex-wrap:wrap; gap:16px; margin-top:10px;}
  .grade{font-family:var(--mono); font-size:11px; color:var(--ink-soft);}
  .grade b{color:var(--red-deep); font-size:13px;}

  /* ---------- LANGUAGES / CLOSING BAND ---------- */
  .closing{
    background:var(--ink); color:var(--paper); position:relative; overflow:hidden;
  }
  .closing .wrap{position:relative; z-index:2;}
  .closing-grid{display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start;}
  @media(max-width:860px){.closing-grid{grid-template-columns:1fr;}}
  .closing .sec-kicker{color:#D8D6CE;}
  .closing-photo{
    position:absolute; right:-40px; top:0; bottom:0; width:38%;
    opacity:.9;
  }
  .closing-photo img{width:100%; height:100%; object-fit:cover; filter:grayscale(70%) brightness(.9);}
  .closing-photo::before{
    content:''; position:absolute; inset:0; background:linear-gradient(90deg, var(--ink) 0%, rgba(17,17,16,0) 35%);
  }
  @media(max-width:860px){.closing-photo{display:none;}}

  .lang-list{display:flex; flex-direction:column; gap:0;}
  .lang-row{
    display:flex; justify-content:space-between; padding:14px 0; border-top:1px solid rgba(250,249,246,.15);
    font-family:var(--mono); font-size:13px;
  }
  .lang-row:last-child{border-bottom:1px solid rgba(250,249,246,.15);}
  .lang-bar{height:2px; background:rgba(250,249,246,.15); width:120px; position:relative; align-self:center;}
  .lang-bar i{position:absolute; left:0; top:0; height:100%; background:var(--red); width:0%;}

  .info-list{display:flex; flex-direction:column; gap:10px; margin-top:20px;}
  .info-list .row{display:flex; justify-content:space-between; font-family:var(--mono); font-size:12.5px; color:rgba(250,249,246,.75);}
  .info-list .row b{color:var(--paper); font-weight:500;}

  /* ---------- CONTACT / FOOTER ---------- */
  footer{padding:90px 0 40px 0; background:var(--paper);}
  .contact-cta{
    text-align:center; padding-bottom:70px; border-bottom:1px solid var(--line-strong); margin-bottom:40px;
  }
  .contact-cta .sec-kicker{justify-content:center; display:flex;}
  .contact-title{
    font-family:var(--serif); font-weight:800; font-size:clamp(36px,6vw,72px); letter-spacing:-0.02em;
    margin-bottom:26px;
  }
  .contact-links{display:flex; justify-content:center; gap:0; flex-wrap:wrap; margin-top:30px;}
  .contact-links a{
    font-family:var(--mono); font-size:12.5px; letter-spacing:.06em; text-transform:uppercase;
    padding:14px 26px; border:1px solid var(--line-strong); border-left:none; margin-left:-1px;
    transition:background .25s ease, color .25s ease;
  }
  .contact-links a:first-child{border-left:1px solid var(--line-strong);}
  .contact-links a:hover{background:var(--ink); color:var(--paper);}
  .foot-row{display:flex; justify-content:space-between; flex-wrap:wrap; gap:14px; font-family:var(--mono); font-size:11px; color:var(--ink-soft);}

  /* utility */
  .mono{font-family:var(--mono);}
  .center{text-align:center;}

  @media (prefers-reduced-motion: reduce){
    *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
  }


  /* ---------- ARTICLES: legacy body/refs styling (used inside expanded story content) ---------- */
  .article-body{max-width:760px; font-family:var(--sans); font-size:15.5px; line-height:1.75; color:var(--ink);}
  .article-body p{margin-bottom:20px;}
  .article-body h4{font-family:var(--serif); font-weight:700; font-size:19px; margin:34px 0 12px;}
  .article-body .drop{font-family:var(--serif); font-style:italic; font-size:19px; color:var(--red-deep); margin-bottom:26px;}
  .article-refs{margin-top:34px; padding-top:22px; border-top:1px solid var(--line);}
  .article-refs summary{font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; color:var(--ink-soft);}
  .article-refs summary:hover{color:var(--red-deep);}
  .article-refs .refs-body{font-family:var(--sans); font-size:12.5px; line-height:1.7; color:var(--ink-soft); margin-top:16px;}

  /* ---------- ARTICLES: NEWS-SERP STYLE ---------- */
  .news-featured{
    display:grid; grid-template-columns:1.1fr 1fr; gap:0; border:1px solid var(--line-strong);
    margin-bottom:6px; background:var(--ink);
  }
  @media(max-width:820px){ .news-featured{grid-template-columns:1fr;} }
  .news-featured .proj-cover{height:auto; min-height:280px; margin:0; border-bottom:none;}
  .news-featured .cover-mark{font-size:120px;}
  .news-feat-body{padding:36px 38px; color:var(--paper); display:flex; flex-direction:column; gap:14px;}
  .news-source-row{display:flex; align-items:center; gap:10px; font-family:var(--mono); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:rgba(250,249,246,.6);}
  .news-source-row .src-badge{
    width:20px; height:20px; border-radius:50%; background:var(--paper); color:var(--ink);
    display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-weight:700; font-size:11px;
  }
  .news-feat-title{font-family:var(--serif); font-weight:700; font-size:clamp(24px,2.6vw,32px); line-height:1.2;}
  .news-feat-snippet{font-family:var(--sans); font-size:14px; line-height:1.7; color:rgba(250,249,246,.78); max-width:52ch;}
  .story-expand{
    align-self:flex-start; margin-top:6px; font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase;
    color:var(--ink); background:var(--paper); border:1px solid var(--paper); padding:11px 22px; cursor:pointer;
    transition:background .25s ease, color .25s ease, transform .25s var(--ease);
  }
  .story-expand:hover{background:transparent; color:var(--paper);}
  .story-expand.is-open{background:transparent; color:var(--paper); border-color:rgba(250,249,246,.4);}

  .news-list{border:1px solid var(--line-strong); border-top:none;}
  .news-row{
    display:grid; grid-template-columns:120px 1fr; gap:22px; padding:24px 26px; border-top:1px solid var(--line);
    transition:background .25s ease;
  }
  .news-row:hover{background:var(--paper-dim);}
  @media(max-width:600px){ .news-row{grid-template-columns:72px 1fr; gap:14px; padding:18px 16px;} }
  .news-row .proj-cover{height:78px; margin:0; border-bottom:none; border-radius:1px;}
  .news-row .cover-mark{font-size:44px; right:8px; bottom:-8px;}
  .news-row .cover-num{display:none;}
  .news-row-body{display:flex; flex-direction:column; gap:6px;}
  .news-row-title{font-family:var(--serif); font-weight:700; font-size:18px; line-height:1.28;}
  .news-row-snippet{font-family:var(--sans); font-size:13px; line-height:1.6; color:var(--ink-soft); max-width:62ch;}
  .news-row .story-expand{margin-top:10px; padding:8px 16px; font-size:10px; background:transparent; color:var(--ink); border-color:var(--ink);}
  .news-row .story-expand:hover{background:var(--ink); color:var(--paper);}
  .news-row .story-expand.is-open{background:var(--ink); color:var(--paper);}

  .story-full{
    max-height:0; overflow:hidden; transition:max-height .65s var(--ease-soft);
  }
  .story-full-inner{padding-top:38px;}
  .books-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(240px,1fr)); gap:36px;}
  .book-card{display:flex; flex-direction:column;}
  img.book-jacket{
    width:100%; aspect-ratio:2/3; object-fit:cover; border-radius:2px; margin-bottom:18px;
    box-shadow:0 18px 40px rgba(17,17,16,0.25); background:var(--paper-dim);
  }
  .book-blurb{font-family:var(--sans); font-size:13.5px; color:var(--ink-soft); line-height:1.6; margin-bottom:18px; flex:1;}
  .book-buy{
    font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; text-align:center;
    padding:12px 20px; border:1px solid var(--ink); color:var(--ink); transition:background .25s ease, color .25s ease;
  }
  .book-buy:hover{background:var(--ink); color:var(--paper);}

  @media(max-width:700px){
    .article-hero{padding:32px 22px;}
  }

  /* ---------- FINANCIAL TOOLS ---------- */
  .tools-intro{
    font-family:var(--serif); font-style:italic; font-size:17px; color:var(--ink-soft);
    max-width:800px; margin-bottom:36px; line-height:1.6;
  }
  .tools-tabs{
    display:flex; flex-wrap:wrap; gap:10px; margin-bottom:36px;
    border-bottom:1px solid var(--line); padding-bottom:24px;
  }
  .tool-tab{
    font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase;
    padding:10px 16px; background:transparent; border:1px solid var(--line-strong); color:var(--ink-soft);
    cursor:pointer; transition:all .25s ease; border-radius:2px;
  }
  .tool-tab:hover{border-color:var(--red); color:var(--red-deep);}
  .tool-tab.active{background:var(--ink); color:var(--paper); border-color:var(--ink);}

  .tool-panel{display:none;}
  .tool-panel.active{display:block; animation:fadeUp .5s ease;}

  .tool-panel-head{margin-bottom:26px;}
  .tool-panel-head h3{
    font-family:var(--serif); font-weight:700; font-size:26px; margin-bottom:6px;
  }
  .tool-panel-head p{font-family:var(--sans); font-size:14px; color:var(--ink-soft); max-width:700px;}

  .field-grid{
    display:grid; grid-template-columns:repeat(auto-fit, minmax(220px,1fr)); gap:20px;
    margin-bottom:26px;
  }
  .field{display:flex; flex-direction:column; gap:6px;}
  .field label{
    font-family:var(--mono); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase;
    color:var(--ink-soft);
  }
  .field .hint{font-family:var(--sans); font-size:11px; color:var(--ink-soft); opacity:.75; margin-top:2px;}
  .field input, .field select{
    font-family:var(--sans); font-size:15px; padding:11px 12px; background:var(--paper-dim);
    border:1px solid var(--line-strong); color:var(--ink); border-radius:2px;
    transition:border-color .2s ease;
  }
  .field input:focus, .field select:focus{outline:none; border-color:var(--red);}

  .tool-actions{display:flex; align-items:center; gap:16px; margin-bottom:30px; flex-wrap:wrap;}
  .btn-calc{
    font-family:var(--mono); font-size:11.5px; letter-spacing:.1em; text-transform:uppercase;
    background:var(--red); color:var(--paper); border:none; padding:14px 30px; cursor:pointer;
    transition:background .25s ease; border-radius:2px;
  }
  .btn-calc:hover{background:var(--red-deep);}
  .btn-reset{
    font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase;
    background:transparent; border:1px solid var(--line-strong); color:var(--ink-soft);
    padding:13px 22px; cursor:pointer; border-radius:2px;
  }
  .btn-reset:hover{border-color:var(--ink); color:var(--ink);}

  .result-card{
    background:var(--navy); color:var(--paper); padding:32px; border-radius:3px; display:none;
  }
  .result-card.show{display:block; animation:fadeUp .4s ease;}
  .result-headline{
    font-family:var(--serif); font-weight:700; font-size:15px; color:var(--paper);
    letter-spacing:.02em; margin-bottom:22px; padding-bottom:16px; border-bottom:1px solid rgba(250,249,246,.18);
  }
  .result-big{
    font-family:var(--serif); font-weight:700; font-size:clamp(30px,4vw,44px); color:var(--paper);
    line-height:1;
  }
  .result-big .lbl{
    display:block; font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase;
    color:rgba(250,249,246,.55); margin-bottom:8px; font-weight:400;
  }
  .result-rows{margin-top:24px; display:grid; gap:0;}
  .result-row{
    display:flex; justify-content:space-between; align-items:baseline; padding:11px 0;
    border-bottom:1px solid rgba(250,249,246,.1); font-family:var(--sans); font-size:14px;
  }
  .result-row span:first-child{color:rgba(250,249,246,.65);}
  .result-row span:last-child{font-family:var(--mono); font-weight:600;}
  .result-row.total{border-bottom:none; margin-top:6px; padding-top:16px; border-top:1px solid rgba(250,249,246,.3);}
  .result-row.total span{font-size:16px; color:var(--paper);}

  .disclaimer-note{
    font-family:var(--sans); font-size:12px; color:var(--ink-soft); margin-top:18px; line-height:1.6;
    padding:14px 16px; background:var(--paper-dim); border-left:2px solid var(--brass);
  }

  .tool-table{width:100%; border-collapse:collapse; margin-top:26px; font-family:var(--mono); font-size:12px;}
  .tool-table th, .tool-table td{padding:9px 10px; text-align:right; border-bottom:1px solid var(--line);}
  .tool-table th{text-align:right; color:var(--ink-soft); font-weight:600; letter-spacing:.04em; text-transform:uppercase; font-size:10px;}
  .tool-table th:first-child, .tool-table td:first-child{text-align:left;}
  .tool-table-wrap{max-height:340px; overflow-y:auto; border:1px solid var(--line);}

  .chart-wrap{margin-top:26px; background:var(--paper-dim); border:1px solid var(--line); padding:20px; border-radius:3px;}
  .chart-wrap svg{width:100%; height:auto; display:block;}

  .risk-note{
    font-family:var(--mono); font-size:11px; color:var(--ink-soft); margin-top:-14px; margin-bottom:26px;
  }

  /* ---------- info tooltips ---------- */
  .field-label-row{display:flex; align-items:center; gap:6px;}
  .info-ico{
    position:relative; display:inline-flex; align-items:center; justify-content:center;
    width:15px; height:15px; border-radius:50%; border:1px solid var(--line-strong);
    color:var(--ink-soft); font-family:var(--serif); font-style:italic; font-size:10.5px;
    cursor:help; flex:none; user-select:none; transition:border-color .2s ease, color .2s ease;
  }
  .info-ico:hover, .info-ico.open{border-color:var(--red); color:var(--red-deep);}
  .info-bubble{
    position:absolute; z-index:40; bottom:calc(100% + 8px); left:50%; transform:translateX(-50%);
    width:240px; background:var(--ink); color:var(--paper); font-family:var(--sans); font-size:12.5px;
    line-height:1.55; padding:12px 14px; border-radius:3px; box-shadow:0 8px 24px rgba(17,17,16,.25);
    opacity:0; visibility:hidden; transition:opacity .15s ease; pointer-events:none;
  }
  .info-bubble::after{
    content:''; position:absolute; top:100%; left:50%; transform:translateX(-50%);
    border:6px solid transparent; border-top-color:var(--ink);
  }
  .info-ico:hover .info-bubble, .info-ico.open .info-bubble{opacity:1; visibility:visible;}
  @media(max-width:640px){
    .info-bubble{left:auto; right:-10px; transform:none;}
    .info-bubble::after{left:auto; right:14px; transform:none;}
  }

  /* ---------- real value toggle ---------- */
  .toggle-row{
    display:flex; align-items:center; gap:12px; margin-bottom:26px; flex-wrap:wrap;
  }
  .toggle-switch{
    position:relative; display:inline-block; width:42px; height:23px; flex:none;
  }
  .toggle-switch input{opacity:0; width:0; height:0;}
  .toggle-slider{
    position:absolute; inset:0; background:var(--line-strong); border-radius:20px; cursor:pointer;
    transition:background .2s ease;
  }
  .toggle-slider::before{
    content:''; position:absolute; width:17px; height:17px; left:3px; top:3px; background:var(--paper);
    border-radius:50%; transition:transform .2s ease;
  }
  .toggle-switch input:checked + .toggle-slider{background:var(--red);}
  .toggle-switch input:checked + .toggle-slider::before{transform:translateX(19px);}
  .toggle-label{
    font-family:var(--mono); font-size:11.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--ink-soft);
    cursor:pointer;
  }

  /* ---------- benchmark comparison ---------- */
  .benchmark-box{
    margin-top:26px; padding-top:24px; border-top:1px solid var(--line);
  }
  .benchmark-box h4{
    font-family:var(--serif); font-weight:700; font-size:17px; margin-bottom:4px;
  }
  .benchmark-box .bm-sub{font-family:var(--sans); font-size:13px; color:var(--ink-soft); margin-bottom:16px; max-width:640px;}
  .bm-legend{display:flex; gap:20px; flex-wrap:wrap; margin-top:10px; font-family:var(--mono); font-size:11px; color:var(--ink-soft);}
  .bm-legend span{display:inline-flex; align-items:center; gap:6px;}
  .bm-legend i{width:14px; height:2px; display:inline-block;}
  .bm-result-rows{margin-top:16px;}
  .bm-result-rows .result-row span:first-child{color:var(--ink-soft);}
  .bm-result-rows .result-row span:last-child{color:var(--ink); font-family:var(--mono);}

  @media(max-width:640px){
    .tool-tab{flex:1 1 45%; text-align:center;}
  }
