/* ==========================================================================
   CAREERS — /careers   (design: assets/html/teamian-careers (1).html)
   Namespace: everything is scoped under .tcar, which is the <main> wrapper in
   careers.php. Paired with assets/js/teamian-careers.js.

   1. :root, html, body and the mock's bare `main` rule all collapse onto
      .tcar — that is why the wrapper is <main class="tcar">.
   2. .reveal became .tcar-rv on all 12 elements. main.js runs its own
      IntersectionObserver over every .reveal and toggles .is-visible, while
      this page's observer toggles .in.
   3. overflow-x:hidden became clip on the wrapper (see the note inline).
   4. Every `Nfr` grid track became `minmax(0,Nfr)` (4 grids).
   5. .hero clears the 76px fixed nav.
   ========================================================================== */


.tcar{
    --bg: #ffffff;
    --ink: #0a0a0a;
    --ink-2: #171717;
    --muted: #6b7280;
    --muted-2: #9ca3af;
    --line: #eeeef0;
    --line-2: #f4f4f5;
    --teal: #0d9488;
    --teal-2: #14b8a6;
    --chip: #f5f5f6;
    --pill-bg: #f6f7f8;
    --max: 1120px;
  }

  
  .tcar{ background: var(--bg); color: var(--ink); }
  .tcar{
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    font-size: 15px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    letter-spacing: -0.005em;
    /* clip, not hidden — hidden forces overflow-y to `auto`, making this a
       scroll container and breaking position:sticky for any descendant. */
    overflow-x: clip;
  }
  .tcar a{ color: inherit; text-decoration: none; }
  .tcar button{ font-family: inherit; }

  /* Full-page vertical grid lines (subtle) */
  .tcar .grid-lines{
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 0;
  }
  .tcar .grid-lines::before,.tcar .grid-lines::after{
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    width: 1px;
    background: var(--line);
  }
  .tcar .grid-lines::before{ left: calc(50% - var(--max)/2); }
  .tcar .grid-lines::after{ left: calc(50% + var(--max)/2 - 1px); }

  /* Additional inner column guides */
  .tcar .grid-inner{
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 0;
  }
  .tcar .grid-inner::before,.tcar .grid-inner::after{
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    width: 1px;
    background: var(--line-2);
  }
  .tcar .grid-inner::before{ left: calc(50% - var(--max)/2 - 100px); }
  .tcar .grid-inner::after{ left: calc(50% + var(--max)/2 + 99px); }

  .tcar{ position: relative; z-index: 1; }

  .tcar .wrap{
    max-width: var(--max);
    margin: 0 auto;
    padding: 0 40px;
    position: relative;
  }

  /* ---------------- HERO ---------------- */
  .tcar .hero{
    padding: calc(76px + 128px) 0 40px;
    text-align: center;
    position: relative;
  }
  .tcar .hero h1{
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    font-size: clamp(44px, 6.4vw, 72px);
    letter-spacing: -0.035em;
    line-height: 1.03;
    color: var(--ink);
  }
  .tcar .hero .sub{
    margin: 22px auto 0;
    max-width: 560px;
    color: var(--muted);
    font-size: 17px;
    line-height: 1.5;
    letter-spacing: -0.01em;
  }
  .tcar .cta{
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 36px;
    padding: 12px 18px;
    background: var(--ink);
    color: #fff;
    border-radius: 10px;
    font-weight: 500;
    font-size: 14px;
    letter-spacing: -0.005em;
    transition: transform .2s ease, background .2s ease;
  }
  .tcar .cta:hover{ background: #1e1e1e; transform: translateY(-1px); }

  /* ---------------- VALUES (with cloud shader) ---------------- */
  .tcar .values{
    position: relative;
    padding: 60px 0 0;
    overflow: hidden;
  }
  .tcar .cloud-wrap{
    position: absolute;
    top: 20px;
    left: 50%;
    transform: translateX(-50%);
    width: 1100px;
    max-width: 100%;
    height: 480px;
    pointer-events: none;
    z-index: 0;
  }
  .tcar #cloud-canvas{
    width: 100%;
    height: 100%;
    display: block;
  }
  .tcar .values-header{
    position: relative;
    z-index: 2;
    text-align: center;
    padding-top: 200px;
  }
  .tcar .values-header .icon{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 18px;
    color: var(--ink);
  }
  .tcar .values-header h2{
    font-size: clamp(36px, 4.4vw, 52px);
    font-weight: 600;
    letter-spacing: -0.03em;
    line-height: 1.05;
  }

  .tcar .values-grid{
    margin-top: 70px;
    max-width: var(--max);
    margin-left: auto;
    margin-right: auto;
    padding: 0 40px;
    display: grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    position: relative;
    z-index: 2;
  }
  .tcar .value{
    padding: 56px 40px 56px 0;
    position: relative;
  }
  .tcar .value:nth-child(2n){ padding-left: 40px; padding-right: 0; }
  .tcar .value:nth-child(1),.tcar .value:nth-child(2){ border-bottom: 1px solid var(--line); }
  .tcar .value:nth-child(odd){ border-right: 1px solid var(--line); }
  .tcar .value:nth-child(2){ padding-top: 96px; }
  .tcar .value:nth-child(4){ padding-top: 40px; }
  .tcar .value .num{
    display: inline-block;
    color: var(--teal);
    font-weight: 500;
    font-size: 15px;
    letter-spacing: -0.005em;
    margin-bottom: 32px;
    font-variant-numeric: tabular-nums;
  }
  .tcar .value h3{
    font-size: 22px;
    font-weight: 600;
    letter-spacing: -0.02em;
    line-height: 1.15;
    margin-bottom: 14px;
    color: var(--ink);
  }
  .tcar .value p{
    color: #4b5563;
    font-size: 15px;
    line-height: 1.55;
    max-width: 420px;
  }
  .tcar .value p u{
    text-decoration: underline;
    text-underline-offset: 2px;
    text-decoration-thickness: 1px;
    text-decoration-color: #cbd5e1;
    color: var(--ink);
  }

  /* ---------------- OPEN ROLES ---------------- */
  .tcar .roles{
    padding: 140px 0 100px;
    border-top: 1px solid var(--line);
    margin-top: 40px;
  }
  .tcar .roles h2{
    text-align: center;
    font-size: clamp(36px, 4.4vw, 52px);
    font-weight: 600;
    letter-spacing: -0.03em;
    line-height: 1.05;
  }
  .tcar .role-list{
    margin: 72px auto 0;
    max-width: var(--max);
    padding: 0 40px;
    list-style: none;
    border-top: 1px solid var(--line);
  }
  .tcar .role{
    display: grid;
    grid-template-columns:minmax(0,1fr) auto auto;
    align-items: center;
    gap: 40px;
    padding: 24px 12px;
    border-bottom: 1px solid var(--line);
    transition: background .2s ease;
  }
  .tcar .role:hover{ background: #fafafa; }
  .tcar .role-info{
    display: flex;
    flex-direction: column;
    gap: 6px;
  }
  .tcar .role .title{
    font-weight: 500;
    color: var(--ink);
    font-size: 15px;
    letter-spacing: -0.005em;
  }
  .tcar .role .deadline{
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 500;
    color: #b45309;
    letter-spacing: -0.005em;
    width: fit-content;
  }
  .tcar .role .deadline::before{
    content: '';
    width: 6px;
    height: 6px;
    border-radius: 999px;
    background: #f59e0b;
    box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.15);
  }
  .tcar .role .loc{
    color: var(--muted);
    font-size: 14px;
  }
  .tcar .role .apply{
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-weight: 500;
    color: var(--ink);
    font-size: 14px;
  }
  .tcar .role .apply .arrow{ transition: transform .2s ease; }
  .tcar .role:hover .apply .arrow{ transform: translateX(3px); }

  /* ---------------- Scroll reveal ---------------- */
  /* Gated on .tcar-js (set inline at the top of the page): these start invisible
     and are revealed by the observer, so without the gate a stylesheet that
     loads while the script fails leaves the page blank. */
  .tcar-js .tcar .tcar-rv{
    opacity: 0;
    transform: translateY(14px);
    transition: opacity .8s cubic-bezier(.22,.61,.36,1), transform .8s cubic-bezier(.22,.61,.36,1);
  }
  .tcar-js .tcar .tcar-rv.in{
    opacity: 1;
    transform: translateY(0);
  }
  .tcar-js .tcar .tcar-rv.d1{ transition-delay: .06s; }
  .tcar-js .tcar .tcar-rv.d2{ transition-delay: .12s; }
  .tcar-js .tcar .tcar-rv.d3{ transition-delay: .18s; }
  .tcar-js .tcar .tcar-rv.d4{ transition-delay: .24s; }

  /* Word cascade on hero */
  .tcar .cascade span{
    display: inline-block;
    opacity: 0;
    transform: translateY(20px);
    animation: cascadeIn .7s cubic-bezier(.22,.61,.36,1) forwards;
  }
  @keyframes cascadeIn {
    to { opacity: 1; transform: translateY(0); }
  }

  /* Mobile */
  @media (max-width: 780px) {
    .tcar .wrap{ padding: 0 20px; }
    .tcar .hero{ padding: calc(76px + 60px) 0 24px; }
    .tcar .values-grid{ padding: 0 20px; grid-template-columns:minmax(0,1fr); }
    .tcar .value{ padding: 40px 0 !important; border-right: none !important; }
    .tcar .value:nth-child(1),.tcar .value:nth-child(2),.tcar .value:nth-child(3){ border-bottom: 1px solid var(--line); }
    .tcar .role-list{ padding: 0 20px; }
    .tcar .role{ grid-template-columns:minmax(0,1fr); gap: 8px; padding: 20px 4px; }
    .tcar .cloud-wrap{ height: 320px; width: 100%; }
    .tcar .values-header{ padding-top: 140px; }
    .tcar .grid-lines,.tcar .grid-inner{ display: none; }
    .tcar .roles{ padding: 80px 0 60px; }
  }

  @media (prefers-reduced-motion: reduce) {
    .tcar *{ animation: none !important; transition: none !important; }
    .tcar .tcar-rv{ opacity: 1; transform: none; }
    .tcar .cascade span{ opacity: 1; transform: none; }
  }
