/* =========================================================
   miakathrynsears.css — CLEAN REWRITE (sticky + background fixed)
   - Sticky works (no ancestor transforms/overflow traps)
   - Background works on subfolders (GitHub Pages / /casestudies/*)
   - Removes duplicates + conflicting overrides
   ========================================================= */

/* =========================================================
   1) TOKENS / VARIABLES
   ========================================================= */
   :root {
    /* font */
    --font-fagun: "fagun", sans-serif;
    --font-fagun-medium: 500;
    --font-fagun-black: 900;
  
    /* font sizes / major third */
    --text-size-xs: 0.64rem;
    --text-size-sm: 0.8rem;
    --text-size-md: 1rem;
    --text-size-lg: 1.25rem;
    --text-size-xl: 1.56rem;
    --text-size-2xl: 1.95rem;
    --text-size-3xl: 2.44rem;
    --text-size-4xl: 3.05rem;
    --text-size-5xl: 3.81rem;
  
    /* spacing */
    --space-xs: 0.5rem;
    --space-sm: 1rem;
    --space-md: 2rem;
    --space-lg: 4rem;
    --space-xl: 6rem;
  
    /* colors */
    --blue: rgb(114, 183, 204);
    --cream: rgb(250, 248, 242);
    --black: rgb(0, 8, 51);
    --grey: rgb(115, 118, 135);
  
    /* image sizes */
    --img-swmm: 200px;
    --img-sm: 100px;
    --img-mw: 350px;
    --img-lw: 500px;
    --img-lm: 350px;
  
    /* buttons */
    --btn-radius: 999px;
    --btn-pad-y: 0.55rem;
    --btn-pad-x: 1.1rem;
    --btn-ease: cubic-bezier(0.22, 1, 0.36, 1);
  }
  
  /* =========================================================
     2) BASE / GLOBAL
     ========================================================= */
  *,
  *::before,
  *::after { box-sizing: border-box; }
  
  html { scroll-behavior: smooth; }
  
  body {
    margin: 0;
    background-color: var(--cream);
    color: var(--black);
    font-family: var(--font-fagun);
    overflow-x: hidden; /* safe; doesn’t break sticky */
  }
  
  /* page background image wrapper
     IMPORTANT: use relative path so it works in subfolders */
  .body {
    background-image: url("../images/background.png");
    background-repeat: repeat-y;
    background-position: top center;
    background-size: 100% auto;
    color: var(--black);
    font-family: var(--font-fagun);
  }
  
  /* responsive media */
img, video { max-width: 100%; height: auto; }

.instagram-media {
  margin-left: auto !important;
  margin-right: auto !important;
}

  
  /* =========================================================
     3) TYPOGRAPHY
     ========================================================= */
  h1 { font-size: var(--text-size-5xl); }
  h2 { font-size: var(--text-size-4xl); }
  h3 { font-size: var(--text-size-3xl); }
  h4 { font-size: var(--text-size-2xl); }
  h5 { font-size: var(--text-size-lg); }
  p  { font-size: var(--text-size-lg); }
  
  .smalltext { font-size: var(--text-size-sm); }
  .midtext   { font-size: var(--text-size-md); }
  .bigtext   { font-size: var(--text-size-xl); }
  
  .greytext  { color: var(--grey); }
  .creamtext { color: var(--cream); }
  
  h1, h2, h3, h4, p, li {
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
  }
  
  @media (max-width: 1200px) {
    h1 { font-size: var(--text-size-4xl); }
    h2 { font-size: var(--text-size-3xl); }
    h3 { font-size: var(--text-size-2xl); }
    h4 { font-size: var(--text-size-lg); }
    h5 { font-size: var(--text-size-md); }
    p  { font-size: var(--text-size-md); }
  }
  
  /* =========================================================
     4) LAYOUT UTILITIES
     ========================================================= */
  .container { margin: 0 auto; }
  
  .row {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
  }
  @media (max-width: 768px) { .row { flex-direction: column; } }
  
  .column {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }
  
  .fullwidth { width: 100%; }
  
  .standardtext {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    max-width: 80%;
  }
  
  .sectiongap { gap: var(--space-lg); }
  @media (max-width: 768px) { .sectiongap { gap: var(--space-sm); } }
  
  /* =========================================================
     5) FOOTER
     ========================================================= */
  footer {
    display: flex;
    background-color: var(--black);
    color: var(--grey);
    padding: var(--space-lg) var(--space-lg);
    text-align: center;
    justify-content: center;
  }
  
  footer a {
    text-decoration: none;
    color: var(--grey);
    font-size: var(--text-size-3xl);
    margin: var(--space-md);
  }
  footer a:hover { color: var(--cream); }
  
  @media (max-width: 600px) { footer { text-align: center; } }
  
  /* =========================================================
     6) NAVIGATION
     ========================================================= */
  .navigation,
  .navigation2{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap: 1rem;
    padding: var(--space-sm) var(--space-lg);
    box-shadow: 0 .5rem 2rem var(--grey);
    position: relative;
    z-index: 50;
  }
  .navigation2{ box-shadow: 0 .5rem 2rem var(--black); }
  
  .logo{
    text-decoration:none;
    color: var(--black);
    line-height: 1;
    white-space: nowrap;
  }
  .logo:hover{ color: var(--blue); }
  
  .toggle{
    display:none;
    background:none;
    border:none;
    padding: 0.25rem;
    line-height: 1;
    font-size: var(--text-size-xl);
    cursor:pointer;
    color: var(--black);
  }
  .toggle:hover{ color: var(--blue); }
  
  .navbar{ display:flex; align-items:center; }
  
  .navbar ul{
    display:flex;
    align-items:center;
    gap: 2.5rem;
    list-style:none;
    margin: 0;
    padding: 0;
  }
  
  .navitem{
    text-decoration:none;
    color: var(--black);
    font-weight: var(--font-fagun-medium);
    font-size: var(--text-size-md);
  }
  .navitem:hover{ color: var(--blue); }
  
  .mobile-only{ display:none; }
  
  /* Tablet + phone dropdown */
  @media (max-width: 768px){
    .toggle{ display:block; }
  
    .navbar{
      display:none;
      position:absolute;
      top: 100%;
      left: 0;
      width: 100%;
      background: var(--cream);
      z-index: 1000;
      box-shadow: 0 .5rem 2rem var(--grey);
    }
  
    .navigation.is-open .navbar,
    .navigation2.is-open .navbar{ display:block; }
  
    .navbar ul{ display:block; }
  
    .navbar .navitem{
      display:block;
      width:100%;
      padding: var(--space-md) var(--space-lg);
    }
  
    .navbar .navitem:hover,
    .navbar .navitem[aria-current="page"]{
      background: var(--blue);
      color: var(--cream);
    }
  }
  
  /* Phone full-screen sheet */
  @media (max-width: 480px){
    .navigation,
    .navigation2{ padding: var(--space-sm); }
  
    .mobile-only{ display:block; }
  
    .navbar{
      display:none;
      position: fixed;
      inset: 0;
      height: 100vh;
      overflow-y: auto;
      background: var(--cream);
      z-index: 2000;
      padding-top: 4.5rem;
    }
  
    .navigation.is-open .navbar,
    .navigation2.is-open .navbar{ display:block; }
  
    .navbar ul{
      display:flex;
      flex-direction: column;
      justify-content: center;
      min-height: 100%;
      width: 100%;
      margin: 0;
      padding: 0;
    }
  
    .navbar li{ width: 100%; }
  
    .navbar .navitem{
      text-align:center;
      font-size: var(--text-size-xl);
      padding: 1.1rem 1.5rem;
      color: var(--blue);
      width: 100%;
      border-radius: 0;
    }
  
    .navbar .navitem:hover,
    .navbar .navitem[aria-current="page"]{
      background: var(--black);
      color: var(--cream);
    }
  }
  
  /* =========================================================
     7) SECTIONS / CARDS
     ========================================================= */
  .align {
    margin-top: var(--space-xl);
    margin-bottom: var(--space-xs);
    padding: 2rem var(--space-lg);
    margin-left: 6rem;
    margin-right: 6rem;
  }
  
  .alignbig {
    margin: var(--space-sm) auto;
    padding: 2rem;
    max-width: 1100px;
  }
  
  /* IMPORTANT CHANGE:
     - By default, cards do NOT transform on hover.
     - Transforms on an ancestor can break sticky.
     - If you want the tilt effect, add class="card card--tilt" in HTML. */
  .card {
    border-radius: 50px;
    margin: var(--space-lg) 6rem;
    box-shadow: 0 .5rem 2rem var(--grey);
    padding: 2rem var(--space-lg);
    transition: transform 250ms ease, box-shadow 250ms ease;
  }
  .card--tilt:hover {
    transform: rotateZ(-3deg) rotateX(2deg) translateY(-6px);
  }
  
  .cardnoanimate {
    border-radius: 50px;
    margin: var(--space-lg) var(--space-xl);
    box-shadow: 0 .5rem 2rem var(--grey);
    padding: 2rem var(--space-lg);
  }
  
  .bluecard  { background: var(--blue);  color: var(--cream); }
  .whitecard { background: var(--cream); }
  .finalcard { margin-bottom: var(--space-lg); }
  
  @media (max-width: 768px) {
    .align {
      margin: var(--space-lg) 1rem;
      padding: 1rem 1rem;
    }
    .alignbig { padding: 1rem 1rem; }
  
    .card,
    .cardnoanimate {
      margin: var(--space-md) 1rem;
      padding: 1rem 1rem;
      text-align: center;
    }
  }
  @media (max-width: 480px) {
    .card,
    .cardnoanimate {
      margin: var(--space-sm) 1rem;
      padding: 1.1rem;
    }
    h1 { font-size: 2.1rem; line-height: 1.05; }
    h2 { font-size: 1.6rem; line-height: 1.1; }
    h3 { font-size: 1.25rem; line-height: 1.15; }
    h4 { font-size: 1.1rem; line-height: 1.2; }
    p, li { font-size: 1rem; line-height: 1.35; }
  }
  
  /* =========================================================
     8) INTRO CARD (kept)
     ========================================================= */
  .intro-card{
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    gap: 2rem;
    align-items: center;
  }
  .intro-card .row{
    grid-column: 1 / -1;
    display: flex;
    justify-content: flex-start;
    margin-bottom: .75rem;
  }
  .intro-card .jump{
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    padding: .6rem 1rem;
    border-radius: 999px;
    text-decoration: none;
    font-weight: var(--font-fagun-medium);
    background: var(--black);
    color: var(--cream);
  }
  .intro-card .jump:hover{ background: var(--blue); color: var(--cream); }
  .intro-card .icon{ width: 18px; height: 18px; object-fit: contain; }
  .intro-card .container.padding{ padding: 0; }
  .intro-card .img{
    width: min(320px, 100%);
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: 22px;
    box-shadow: 0 1.1rem 2.8rem rgba(0,0,0,.35);
    transform: rotate(1.25deg);
    border: 2px solid rgba(255,255,255,.22);
  }
  @media (max-width: 768px){
    .intro-card{ grid-template-columns: 1fr; gap: 1.25rem; }
    .intro-card .projectimg{ transform: none; width: min(360px, 100%); }
  }
  
  /* =========================================================
     9) PROJECT / CASE STUDY LAYOUT (STICKY FIXED)
     ========================================================= */
  .project,
  .projectreverse {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: var(--space-sm);
  }
  .projectreverse { flex-direction: row-reverse; }
  
  @media (max-width: 992px) {
    .project,
    .projectreverse { flex-direction: column-reverse; }
  }
  @media (max-width: 768px) { .project { padding: 0 1rem; } }
  
  .project > a,
  .projectreverse > a { flex: 0 0 50%; }
  
  .projectinfo {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--space-sm);
  }
  
  /* Sticky rules:
     - MUST NOT have transformed ancestor (fixed by card--tilt opt-in)
     - MUST NOT have overflow clipping on ancestors
     - Works per section: header sticks while its section is in view */
  .case {
    display: flex;
    padding: 0;
    gap: var(--space-xs);
    margin-bottom: var(--space-xl);
    align-items: flex-start;
    overflow: visible; /* avoids sticky being clipped */
  }
  
  .cardnoanimate .case:first-of-type { margin-top: var(--space-lg); }
  
  .case h4 { margin-top: 0; }
  
  .caseleft {
    flex: 1;
    max-width: 250px;
    position: sticky;
    top: var(--space-md);                 
    align-self: flex-start;
    height: fit-content;
    margin-bottom: var(--space-xs);
  }
  
  .caseright {
    flex: 3;
    padding-left: var(--space-lg);
    border-left: 5px solid var(--blue);
  }
  
  .caseright img,
  .caseright a img{
    display: block;
    margin-left: auto;
    margin-right: auto;
    max-width: 100%;
    height: auto;
  }
  
  /* On smaller screens: remove sticky + stack */
  @media (max-width: 700px) {
    .case {
      flex-direction: column;
      align-items: center;
      justify-content: center;
      text-align: center;
      margin-bottom: var(--space-sm);
    }
    .caseleft {
      position: static;     /* sticky off on mobile */
      top: auto;
      max-width: 100%;
    }
    .caseright {
      padding-left: 0;
      border-left: none;
      border-top: 4px solid var(--blue);
      padding-top: var(--space-sm);
    }
    .caseleft h4 {
      margin: 0 auto;
    }
  }
  
  /* DO NOT make the h4 sticky */
  .case-title { position: static; }
  
  /* =========================================================
     10) BUTTONS (unified)
     ========================================================= */
  .btn,
  button,
  a.button,
  a.keyitem2 {
    display: inline-flex;
    align-items: center;
    justify-content: center;
  
    padding: var(--btn-pad-y) var(--btn-pad-x);
    border-radius: var(--btn-radius);
  
    font-family: var(--font-fagun);
    font-size: var(--text-size-md);
    font-weight: var(--font-fagun-medium);
  
    cursor: pointer;
    text-decoration: none;
    border: none;
  
    transition:
      transform 220ms var(--btn-ease),
      background-color 220ms var(--btn-ease),
      color 220ms var(--btn-ease),
      box-shadow 220ms var(--btn-ease);
  }
  
  /* old “keys” styling retained */
  .keys { display: flex; gap: var(--space-sm); }
  .keys a { text-decoration: none; text-align: center; }
  
  .keyitem {
    background-color: var(--cream);
    color: var(--blue);
    padding: 0.5rem;
    border-radius: 30px;
  }
  .keyitem2 {
    display: flex;
    background-color: var(--blue);
    color: var(--cream);
    padding: 0.5rem;
    border-radius: 30px;
    border: none;
    justify-content: center;
    align-items: center;
    text-align: center;
  }
  .keyitem:hover { transform: translateX(5px); }
  .keyitem2:hover { transform: translateX(5px); background-color: var(--black); }
  
  @media (max-width: 600px) { .keys { gap: var(--space-xs); } .keyitem { padding: 0.25rem; } }
  @media (max-width: 480px) { .keys { flex-direction: column; } }
  
  /* =========================================================
     11) TABLES + EMBEDS
     ========================================================= */
  .overview-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
  }
  .overview-table th,
  .overview-table td {
    padding: 0.9rem 0;
    vertical-align: top;
    overflow-wrap: anywhere;
  }
  .overview-table tr + tr {
    border-top: 1px solid rgba(0, 0, 0, 0.08);
  }
  .overview-table th {
    width: clamp(9rem, 28%, 14rem);
    text-align: left;
    font-weight: 500;
    color: var(--grey);
    letter-spacing: 0.02em;
    text-transform: uppercase;
    font-size: var(--text-size-sm);
  }
  .overview-table td { font-size: var(--text-size-lg); }
  
  @media (max-width: 998px) {
    .overview-table,
    .overview-table tbody,
    .overview-table tr,
    .overview-table th,
    .overview-table td { display: block; width: 100%; }
    .overview-table tr { padding: var(--space-xs) 0; }
    .overview-table th { padding-bottom: 0.25rem; }
    .overview-table td { padding-top: 0; }
  }
  @media (max-width: 600px) { .overview-table td { font-size: var(--text-size-md); } }
  



  
  /* =========================================================
     12) IMAGES (retained)
     ========================================================= */
  .miapfp {
    display: block;
    border-radius: 10%;
    width: 80%;
    margin: 0 auto;
    padding-top: var(--space-lg);
    padding-bottom: var(--space-lg);
  }
  
  .icon { width: 10%; }
  
  .example {
    display: block;
    width: 100%;
    margin: 0 auto;
    justify-content: center;
    align-items: center;
    border: var(--space-md) solid var(--black);
    border-radius: 10%;
    box-shadow: 0 .5rem 2rem var(--grey);
    transition: opacity 500ms ease;
  }
  .example:hover { opacity: 60%; }
  
  @media (max-width: 992px) { .example { width: 80%; } }
  @media (max-width: 768px) { .example { width: 90%; border: var(--space-sm) solid var(--black); } }
  @media (max-width: 480px) { .example { width: 100%; } }
  
  .projectimg {
    width: var(--img-lw);
    border-radius: 10%;
    margin: var(--space-md) auto var(--space-lg);
    box-shadow: 0 .5rem 2rem var(--grey);
  }
  @media (max-width: 768px) { .projectimg { width: var(--img-lm); } }
  @media (max-width: 480px) { .projectimg { width: var(--img-swmm); } }
  
  .projectimgsm {
    width: var(--img-mw);
    border-radius: 10%;
    border: 5px solid var(--black);
    box-shadow: 0 .5rem 2rem var(--grey);
    margin: var(--space-md) auto;
  }
  @media (max-width: 768px) { .projectimgsm { width: var(--img-swmm); } }
  
  /* Project banners */
  .projectimgbanner {
    background-image: url(../images/americanpiepose.jpg);
    background-size: cover;
    height: var(--img-lm);
    box-shadow: 0 .5rem 2rem var(--black);
    margin-bottom: var(--space-lg);
  }
  .projectimgbannerb {
    background-image: url(../images/shadowspark.jpg);
    background-size: cover;
    height: var(--img-lm);
    box-shadow: 0 .5rem 2rem var(--black);
    margin-bottom: -5rem;
  }
  .projectimgbannerc {
    position: relative;
    border-radius: 0;
    background-image: url(../images/coltsparty.jpg);
    background-size: cover;
    background-position: center;
    height: var(--img-lm);
    box-shadow: 0 .5rem 2rem var(--black);
    margin-bottom: -5rem;
  }
  .projectimgbannerd {
    position: relative;
    border-radius: 0;
    background-image: url(../images/savedatesketch\ \(1\).jpg);
    background-size: cover;
    background-position: center;
    height: var(--img-lm);
    box-shadow: 0 .5rem 2rem var(--black);
    margin-bottom: -5rem;
  }
  
  .banner-credit {
    position: absolute;
    right: 1rem;
    bottom: 0.75rem;
    font-size: var(--text-size-sm);
    color: rgba(250, 248, 242, 0.85);
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
  }
  
  .project-banner-wrap {
    margin-bottom: var(--space-lg);
    margin-left: 6rem;
    margin-right: 6rem;
  }
  @media (max-width: 768px) {
    .project-banner-wrap { margin-left: 1rem; margin-right: 1rem; }
  }
  
  .banner-caption {
    margin: 0.5rem 0 0 0;
    font-size: var(--text-size-sm);
    color: var(--grey);
    opacity: 0.75;
  }
  
  .triocasestudy {
    width: 100%;
    object-fit: contain;
    border-radius: 10%;
    object-position: center;
    display: flex;
    gap: 2rem;
    justify-content: center;
    align-items: flex-start;
  }
  
  /* =========================================================
     13) DOODLE (kept, cleaned)
     ========================================================= */
  .doodleonport { display: flex; flex-direction: row; margin: 2rem 6rem; }
  @media (max-width: 768px) { .doodleonport { margin: 2rem 1rem; } }
  
  .doodlerow {
    display: flex;
    align-items: stretch;
    gap: 3rem;
    opacity: 0;
    transform: translateY(20px);
    animation: hero-in 700ms ease-out forwards;
    animation-delay: 150ms;
  }
  
  .greeting { flex: 0 1 auto; width: 100%; padding-left: var(--space-lg); }
  
  @media (max-width: 768px) {
    .greeting { padding-left: 0; width: 100%; }
    .doodlerow { flex-direction: column; }
  }
  
  #doodle { width: 100%; height: auto; border-radius: 20px; background: var(--cream); }
  
  @media (max-width: 768px) { #doodle { display: none; } .click { display: none; } }
  
  @keyframes hero-in {
    to { opacity: 1; transform: translateY(0); }
  }
  
  /* =========================================================
     14) RESUME (kept as-is, minus duplicates that broke layout)
     ========================================================= */
  .resume,
  .resume-shell {
    max-width: 1100px;
    padding-top: var(--space-lg);
    padding-bottom: var(--space-lg);
    margin: var(--space-lg) auto var(--space-xl);
  }
  
  .resume-nav,
  .resume-sticky {
    position: sticky;
    top: var(--space-sm);
    z-index: 20;
    margin: var(--space-md) 0;
    background: var(--cream);
    border-radius: 50px;
    box-shadow: 0 .5rem 2rem var(--grey);
    padding: var(--space-sm) var(--space-lg);
  }
  
  .resume-card,
  .role {
    margin-top: var(--space-md);
    padding: var(--space-md);
    border-radius: 50px;
    box-shadow: 0 .5rem 2rem var(--grey);
    background: var(--cream);
  }
  
  /* back-to-top */
  .resume-top,
  .backtop {
    position: fixed;
    right: var(--space-md);
    bottom: var(--space-md);
    z-index: 60;
    opacity: 0;
    pointer-events: none;
    transform: translateY(10px);
    transition: opacity 200ms ease, transform 200ms ease;
  }
  .resume-top.show,
  .backtop.show {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
  }
  
  /* recruiter mode */
  body.recruiter-mode .resume-card,
  body.recruiter-mode .role { padding: var(--space-sm); }
  body.recruiter-mode .pill,
  body.recruiter-mode .chip,
  body.recruiter-mode .btn,
  body.recruiter-mode .keyitem,
  body.recruiter-mode .keyitem2 { transition: none; }
  
  /* Reset text color inside white blocks within blue shell */
  .resume .whitecard,
  .resume-shell .whitecard,
  .resume-shell .whitecard h1,
  .resume-shell .whitecard h2,
  .resume-shell .whitecard h3,
  .resume-shell .whitecard h4,
  .resume-shell .whitecard h5,
  .resume-shell .whitecard p,
  .resume-shell .whitecard li,
  .resume-shell .whitecard a { color: var(--black); }
  
  @media (max-width: 768px) {
    .resume-nav,
    .resume-sticky { padding: var(--space-sm); border-radius: 30px; }
    .resume-card,
    .role { border-radius: 30px; }
  }
  
  @media (max-width: 768px) {
    .bluecard.cardnoanimate {
      margin: 0;
      width: 100%;
      max-width: 100%;
      border-radius: 0;
    }
    .bluecard.cardnoanimate * { max-width: 100%; }
  }
  /* =========================
   RESUME PAGE — missing styles
   ========================= */

.resume-hero{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
}

.resume-actions{
  display: flex;
  gap: var(--space-sm);
  flex-wrap: wrap;
  justify-content: flex-end;
}

@media (max-width: 768px){
  .resume-hero{ flex-direction: column; text-align: center; }
  .resume-actions{ justify-content: center; }
}

/* role layout */
.resume-role__grid{
  display: grid;
  grid-template-columns: 1.4fr .6fr;
  gap: var(--space-lg);
  align-items: start;
}

@media (max-width: 900px){
  .resume-role__grid{ grid-template-columns: 1fr; }
}

.resume-role__media{
  display: flex;
  align-items: center;
  justify-content: center;
}

.resexample{
  width: 100%;
  max-width: 360px;
  border-radius: 22px;
  box-shadow: 0 .5rem 2rem rgba(0,0,0,.18);
}

/* details/summary polish + chevron rotate */
.resume-role details,
.resume-card details{
  margin-top: .75rem;
  padding-top: .25rem;
}

.resume-role summary,
.resume-card summary{
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  font-weight: var(--font-fagun-medium);
}

.resume-role summary::-webkit-details-marker,
.resume-card summary::-webkit-details-marker{
  display: none;
}

.chev{
  transition: transform 250ms var(--btn-ease);
}

details[open] .chev{
  transform: rotate(180deg);
}

/* sticky nav links */
.resume-nav__links{
  display: flex;
  gap: var(--space-md);
  flex-wrap: wrap;
  justify-content: center;
}

.resume-nav__links a{
  text-decoration: none;
  color: var(--black);
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .55rem .9rem;
  border-radius: 999px;
}

.resume-nav__links a[aria-current="true"]{
  background: var(--blue);
  color: var(--cream);
}

/* =========================
   SKILLS TABS (radio tabs)
   ========================= */

.skills-tabs{
  margin-top: var(--space-md);
}

.skills-tab__input{
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.skills-tab__btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .6rem 1rem;
  border-radius: 999px;
  cursor: pointer;
  margin-right: .5rem;
  background: rgba(250,248,242,.65);
  box-shadow: 0 .5rem 2rem rgba(0,0,0,.08);
}

.skills-panels{
  margin-top: var(--space-md);
}

.skills-panel{ display: none; }

#skills-tech:checked ~ .skills-panels #panel-tech{ display: block; }
#skills-soft:checked ~ .skills-panels #panel-soft{ display: block; }

.skills-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-md);
}

@media (max-width: 900px){
  .skills-grid{ grid-template-columns: 1fr; }
}

.skills-block{
  background: rgba(250,248,242,.7);
  border-radius: 30px;
  padding: var(--space-md);
  box-shadow: 0 .5rem 2rem rgba(0,0,0,.08);
}

.skills-block ul{
  margin: .5rem 0 0 1.1rem;
}

  /* =========================================================
     15) about section
     ========================================================= */
/* ===== About page layout (same vibe as case studies) ===== */
.about-card { overflow: hidden; }

.about-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-lg);
  align-items: center;
}

.about-hero{
  width: 100%;
  max-width: 520px;
  border-radius: 22px;
  box-shadow: 0 .5rem 2rem rgba(0,0,0,.22);
  margin: 0 auto;
}

.about-photos{
  display: flex;
  justify-content: center;
  gap: var(--space-md);
  flex-wrap: wrap;
  margin: var(--space-md) 0;
}

.about-split{
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: var(--space-lg);
  align-items: center;
}

.about-paint{
  width: 100%;
  max-width: 520px;
  border-radius: 22px;
  box-shadow: 0 .5rem 2rem rgba(0,0,0,.18);
  margin: 0 auto;
}

.about-closer{ text-align: center; }

@media (max-width: 900px){
  .about-grid, .about-split{ grid-template-columns: 1fr; }
}
  /* =========================================================
     16) mobile movement and fixes
     ========================================================= */
/* Mobile tap motion */
@media (hover: none) and (pointer: coarse) {
  .card, .keyitem, .keyitem2, .btn, .navitem, summary {
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
  }

  .card:active {
    transform: scale(0.99);
  }

  .keyitem:active, .keyitem2:active, .btn:active {
    transform: translateY(2px);
  }
}
/* Accordion motion */
details > *:not(summary) {
  animation: details-in 220ms ease-out;
}

@keyframes details-in {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Chev rotation (if not already) */
.chev { transition: transform 220ms ease; }
details[open] .chev { transform: rotate(180deg); }
/* ===== Mobile alignment fix: Skills blocks ===== */
@media (max-width: 600px) {
  /* Make the single-column layout truly centered */
  .skills-grid {
    justify-items: center;
  }

  /* Give each block a consistent centered width */
  .skills-block {
    width: 100%;
    max-width: 26rem;
    text-align: left; /* prevents weird centered bullets */
  }

  /* Normalize list indentation so it doesn't "drift" */
  .skills-block ul {
    margin: 0.75rem 0 0 0;
    padding-left: 1.1rem; /* controlled indent */
    list-style-position: outside;
  }

  /* Optional: keep the heading centered while body is left-aligned */
  .skills-block h3,
  .skills-block h4 {
    text-align: center;
  }
}
@media (max-width: 768px) {
  .resume-card {
    text-align: left;
  }

  .resume-card h2,
  .resume-card h3,
  .resume-card .resume-meta {
    text-align: center;
  }
}
@media (max-width: 768px) {
  .resume-role__media {
    width: 100%;
    margin-top: 1rem;
    display: flex;
    justify-content: center;
  }

  .resume-role__media img {
    margin-left: auto;
    margin-right: auto;
  }
}
