  :root{
    --bg:#FCFAF7;
    --panel:#FFFFFF;
    --panel-2:#F5EFE7;
    --border:#E8DFD3;
    --text:#241B16;
    --text-dim:#5C4F45;
    --text-faint:#8F8172;
    --amber:#A47C1B;
    --orange:#A8441C;
    --cyan:#7C2D3B;
    --violet:#9C4259;
    --green:#6B7A4F;
    --amber-dim:rgba(164,124,27,0.10);
    --orange-dim:rgba(168,68,28,0.09);
    --cyan-dim:rgba(124,45,59,0.09);
    --violet-dim:rgba(156,66,89,0.09);
    --green-dim:rgba(107,122,79,0.09);
    --on-accent:#FFFDF8;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--bg);
    color:var(--text);
    font-family:'IBM Plex Sans', sans-serif;
    -webkit-font-smoothing:antialiased;
    min-height:100vh;
    background-image:
      radial-gradient(ellipse 900px 500px at 15% -10%, rgba(164,124,27,0.05), transparent),
      radial-gradient(ellipse 700px 500px at 100% 10%, rgba(124,45,59,0.04), transparent);
  }
  .starfield{
    position:fixed; inset:0; z-index:0; pointer-events:none; opacity:0.5;
  }
  .wrap{
    position:relative; z-index:1;
    max-width:840px;
    margin:0 auto;
    padding:0 24px 120px;
  }

  /* Header */
  header{
    padding:48px 0 28px;
    border-bottom:1px solid var(--border);
    margin-bottom:0;
  }
  .callsign{
    display:flex; align-items:center; gap:8px;
    font-family:'IBM Plex Mono', monospace;
    font-size:11px; letter-spacing:0.12em;
    color:var(--text-faint);
    text-transform:uppercase;
    margin-bottom:18px;
  }
  .dot{
    width:6px; height:6px; border-radius:50%;
    background:var(--amber);
    box-shadow:0 0 8px var(--amber);
    animation:pulse 2.4s ease-in-out infinite;
  }
  @keyframes pulse{
    0%,100%{opacity:1;}
    50%{opacity:0.35;}
  }
  h1{
    font-family:'Fraunces', serif;
    font-variation-settings:'opsz' 144, 'SOFT' 20, 'WONK' 1;
    font-weight:600;
    font-size:44px;
    letter-spacing:-0.01em;
    line-height:1.08;
    margin-bottom:12px;
  }
  .subhead{
    color:var(--text-dim);
    font-size:16px;
    max-width:520px;
    line-height:1.5;
    margin-bottom:26px;
  }
  .telemetry-row{
    display:flex; flex-wrap:wrap; gap:0;
    border-top:1px solid var(--border);
    border-bottom:1px solid var(--border);
  }
  .telem{
    flex:1 1 auto;
    min-width:110px;
    padding:12px 18px 12px 0;
    border-right:1px solid var(--border);
  }
  .telem:last-child{border-right:none;}
  .telem-label{
    font-family:'IBM Plex Mono', monospace;
    font-size:10px;
    letter-spacing:0.1em;
    color:var(--text-faint);
    text-transform:uppercase;
    margin-bottom:4px;
  }
  .telem-val{
    font-family:'IBM Plex Mono', monospace;
    font-size:14px;
    color:var(--text);
    font-weight:500;
  }

  /* Tabs */
  .tabs-hint{
    font-family:'IBM Plex Mono', monospace;
    font-size:10px;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--text-faint);
    margin:24px 0 8px;
    display:flex;
    align-items:center;
    gap:6px;
  }
  .tabs-hint::before{
    content:"";
    width:5px; height:5px;
    background:var(--text-faint);
    display:inline-block;
    animation:pulse 2.4s ease-in-out infinite;
  }
  nav.tabs{
    display:flex; gap:6px;
    margin:0 0 0;
    position:sticky; top:0; z-index:10;
    background:var(--bg);
    padding:6px 0 14px;
  }
  .tab-btn{
    min-width:0;
    font-family:'IBM Plex Mono', monospace;
    font-size:12.5px;
    letter-spacing:0.06em;
    text-transform:uppercase;
    font-weight:500;
    color:var(--text-dim);
    background:var(--panel-2);
    border:1px solid var(--border);
    border-radius:4px;
    padding:14px 16px;
    cursor:pointer;
    transition:transform 0.15s ease, box-shadow 0.15s ease, color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
    flex:1;
    text-align:left;
    position:relative;
  }
  .tab-btn:hover{
    color:var(--text);
    border-color:var(--text-faint);
    transform:translateY(-2px);
    box-shadow:0 6px 14px rgba(30,26,19,0.10);
  }
  .tab-btn:focus-visible{outline:1px solid var(--text-dim); outline-offset:2px;}
  .tab-btn .tnum{
    display:inline-block;
    font-size:10px;
    color:inherit;
    opacity:0.8;
    margin-bottom:5px;
    padding:1px 6px;
    border:1px solid currentColor;
    border-radius:3px;
  }
  .tab-btn .tlabel{display:block;}
  .tab-btn.active{
    font-weight:600;
    transform:translateY(-3px);
    box-shadow:0 8px 18px rgba(30,26,19,0.14);
  }
  .tab-btn.active .tnum{opacity:1; color:var(--on-accent);}
  .tab-btn[data-tab="thesis"].active{
    color:var(--amber); border-color:var(--amber); background:var(--amber-dim);
  }
  .tab-btn[data-tab="thesis"].active .tnum{background:var(--amber);}
  .tab-btn[data-tab="constraints"].active{
    color:var(--orange); border-color:var(--orange); background:var(--orange-dim);
  }
  .tab-btn[data-tab="constraints"].active .tnum{background:var(--orange);}
  .tab-btn[data-tab="market"].active{
    color:var(--cyan); border-color:var(--cyan); background:var(--cyan-dim);
  }
  .tab-btn[data-tab="market"].active .tnum{background:var(--cyan);}
  .tab-btn[data-tab="revenue"].active{
    color:var(--green); border-color:var(--green); background:var(--green-dim);
  }
  .tab-btn[data-tab="revenue"].active .tnum{background:var(--green);}
  .tab-btn[data-tab="bullcase"].active{
    color:var(--violet); border-color:var(--violet); background:var(--violet-dim);
  }
  .tab-btn[data-tab="bullcase"].active .tnum{background:var(--violet);}

  main{
    border:1px solid var(--border);
    background:var(--panel);
    padding:40px 36px 48px;
    border-radius:4px;
    box-shadow:0 1px 3px rgba(30,26,19,0.04), 0 12px 32px rgba(30,26,19,0.05);
  }
  .panel{display:none;}
  .panel.active{display:block; animation:fadein 0.25s ease;}
  @keyframes fadein{from{opacity:0; transform:translateY(4px);} to{opacity:1; transform:translateY(0);}}

  .panel-head{
    display:flex; justify-content:space-between; align-items:baseline;
    margin-bottom:8px;
    flex-wrap:wrap; gap:8px;
  }
  .panel-title{
    font-family:'Fraunces', serif;
    font-variation-settings:'opsz' 60, 'SOFT' 15, 'WONK' 1;
    font-weight:600;
    font-size:26px;
  }
  .panel-tag{
    font-family:'IBM Plex Mono', monospace;
    font-size:11px;
    letter-spacing:0.08em;
    text-transform:uppercase;
  }
  #thesis .panel-tag{color:var(--amber);}
  #constraints .panel-tag{color:var(--orange);}
  #market .panel-tag{color:var(--cyan);}
  #revenue .panel-tag{color:var(--green);}
  #bullcase .panel-tag{color:var(--violet);}

  .panel-intro{
    color:var(--text-dim);
    font-size:15px;
    line-height:1.6;
    margin:14px 0 32px;
    max-width:600px;
  }

  section.block{
    padding:26px 0;
    border-top:1px solid var(--border);
  }
  section.block:first-of-type{border-top:1px solid var(--border);}

  .block-label{
    font-family:'IBM Plex Mono', monospace;
    font-size:11px;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--text-faint);
    margin-bottom:10px;
  }
  .block-title{
    font-family:'Fraunces', serif;
    font-variation-settings:'opsz' 30, 'SOFT' 10;
    font-weight:600;
    font-size:19px;
    margin-bottom:10px;
  }
  .block p{
    color:var(--text-dim);
    font-size:14.5px;
    line-height:1.65;
    margin-bottom:10px;
  }
  .block p strong{color:var(--text); font-weight:600;}
  .block ul{
    list-style:none;
    margin-top:12px;
  }
  .block ul li{
    color:var(--text-dim);
    font-size:14.5px;
    line-height:1.6;
    padding-left:18px;
    position:relative;
    margin-bottom:9px;
  }
  #thesis .block ul li::before{content:"\00b7"; position:absolute; left:0; color:var(--amber);}
  #constraints .block ul li::before{content:"\00b7"; position:absolute; left:0; color:var(--orange);}
  #market .block ul li::before{content:"\00b7"; position:absolute; left:0; color:var(--cyan);}
  #revenue .block ul li::before{content:"\00b7"; position:absolute; left:0; color:var(--green);}
  #bullcase .block ul li::before{content:"\00b7"; position:absolute; left:0; color:var(--violet);}
  .block ul li strong{color:var(--text); font-weight:600;}

  a.src{
    font-family:'IBM Plex Mono', monospace;
    font-size:10px;
    letter-spacing:0.02em;
    text-decoration:none;
    border-bottom:1px solid currentColor;
    white-space:nowrap;
    margin-left:4px;
    opacity:0.85;
    transition:opacity 0.15s ease;
  }
  a.src:hover{opacity:1;}
  span.est{
    font-family:'IBM Plex Mono', monospace;
    font-size:10px;
    letter-spacing:0.02em;
    color:var(--text-faint);
    border-bottom:1px dotted var(--text-faint);
    white-space:nowrap;
    margin-left:4px;
  }
  a.src:focus-visible{outline:1px solid currentColor; outline-offset:2px;}
  #thesis a.src{color:var(--amber);}
  #constraints a.src{color:var(--orange);}
  #market a.src{color:var(--cyan);}
  #revenue a.src{color:var(--green);}
  #bullcase a.src{color:var(--violet);}
  .sources{
    border-top:1px solid var(--border);
    margin-top:30px;
    padding-top:22px;
  }
  .sources-label{
    font-family:'IBM Plex Mono', monospace;
    font-size:10.5px;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--text-faint);
    margin-bottom:14px;
  }
  .sources ul{list-style:none;}
  .sources li{
    font-size:12.5px;
    line-height:1.5;
    margin-bottom:9px;
    color:var(--text-faint);
    padding-left:0;
  }
  .sources li::before{content:none !important;}
  .sources a{
    color:var(--text-dim);
    text-decoration:none;
    border-bottom:1px solid var(--border);
  }
  .sources a:hover{color:var(--text); border-bottom-color:var(--text-dim);}
  .sources a:focus-visible{outline:1px solid var(--text-dim); outline-offset:2px;}

  .metric-row{
    display:flex; gap:0;
    margin:18px 0 6px;
    border:1px solid var(--border);
  }
  .metric{
    flex:1; padding:16px 16px;
    border-right:1px solid var(--border);
  }
  .metric:last-child{border-right:none;}
  .metric-num{
    font-family:'IBM Plex Mono', monospace;
    font-size:22px; font-weight:600;
    margin-bottom:4px;
  }
  #thesis .metric-num{color:var(--amber);}
  #constraints .metric-num{color:var(--orange);}
  #market .metric-num{color:var(--cyan);}
  #revenue .metric-num{color:var(--green);}
  #bullcase .metric-num{color:var(--violet);}
  .metric-label{
    font-size:11.5px; color:var(--text-faint); line-height:1.4;
  }

  /* diagram */
  .diagram-wrap{
    border:1px solid var(--border);
    background:var(--panel-2);
    padding:24px;
    margin:20px 0 8px;
  }
  .chart-wrap{
    border:1px solid var(--border);
    background:var(--panel-2);
    padding:22px 20px 16px;
    margin:20px 0 8px;
  }
  .chart-legend{
    display:flex; flex-wrap:wrap; gap:16px;
    font-family:'IBM Plex Mono', monospace;
    font-size:10px; color:var(--text-faint);
    margin-bottom:16px;
  }
  .chart-legend span{display:flex; align-items:center; gap:6px;}
  .swatch-line{width:14px; height:2px; background:var(--cyan);}
  .swatch-dot{width:9px; height:9px; border-radius:50%; background:var(--orange);}
  .diagram-caption{
    font-family:'IBM Plex Mono', monospace;
    font-size:10.5px;
    color:var(--text-faint);
    text-align:center;
    margin-top:10px;
    letter-spacing:0.04em;
  }

  /* competitor table */
  .comp-table{
    width:100%;
    border-collapse:collapse;
    margin:18px 0 8px;
    font-size:13.5px;
  }
  .comp-table th{
    font-family:'IBM Plex Mono', monospace;
    font-size:10.5px;
    letter-spacing:0.06em;
    text-transform:uppercase;
    color:var(--text-faint);
    text-align:left;
    padding:8px 12px 8px 0;
    border-bottom:1px solid var(--border);
    font-weight:500;
  }
  .comp-table td{
    padding:11px 12px 11px 0;
    border-bottom:1px solid var(--border);
    color:var(--text-dim);
    vertical-align:top;
    line-height:1.5;
  }
  .comp-table td.who{color:var(--text); font-weight:600; white-space:nowrap;}
  .comp-table tr:last-child td{border-bottom:none;}

  .callout{
    background:var(--panel-2);
    border-left:2px solid var(--amber);
    padding:16px 20px;
    margin:20px 0;
  }
  #constraints .callout{border-left-color:var(--orange);}
  #market .callout{border-left-color:var(--cyan);}
  #revenue .callout{border-left-color:var(--green);}
  #bullcase .callout{border-left-color:var(--violet);}
  .callout p{margin-bottom:0; color:var(--text); font-size:14.5px; line-height:1.6;}
  .callout p em{
    font-family:'Fraunces', serif;
    font-variation-settings:'opsz' 24, 'SOFT' 20;
    color:var(--text-dim);
    font-style:italic;
  }

  footer{
    max-width:840px; margin:40px auto 0; padding:0 24px;
    display:flex; justify-content:space-between; align-items:center;
    font-family:'IBM Plex Mono', monospace;
    font-size:10.5px; color:var(--text-faint);
    letter-spacing:0.04em;
  }

  @media(max-width:640px){
    h1{font-size:30px;}
    main{padding:28px 20px 36px;}
    .telemetry-row{flex-wrap:wrap;}
    .telem{
      flex:1 1 45%;
      border-right:1px solid var(--border);
      border-bottom:1px solid var(--border);
      padding:16px 18px;
    }
    .metric-row{flex-direction:column;}
    .metric{border-right:none; border-bottom:1px solid var(--border);}
    .metric:last-child{border-bottom:none;}
    .tabs-hint{margin:18px 0 6px;}
    nav.tabs{
      flex-direction:row;
      flex-wrap:wrap;
      gap:7px;
      padding:4px 0 10px;
    }
    .tab-btn{
      flex:1 1 30%;
      min-width:96px;
      display:flex;
      align-items:center;
      justify-content:center;
      gap:6px;
      white-space:nowrap;
      padding:11px 6px;
      font-size:9.5px;
      letter-spacing:0.04em;
      text-align:center;
    }
    .tab-btn .tnum{margin-bottom:0;}
    .tab-btn .tlabel{display:inline;}
    .tab-btn:hover, .tab-btn.active{transform:none;}
    .comp-table{font-size:12px;}
  }
