
    
    :root{
      --bg:#000000; --fg:#e9edf1; --muted:#a7b0ba;
      --card:#1c3b6a; --border:rgba(255,255,255,.08);
      --accent:#7c5cff;
      --max:1120px;
    }
    *{box-sizing:border-box}
    header{
        position: sticky;
        top: 0;
        z-index: 999;
    }
    body{
        margin:0;font:16px/1.55 system-ui,-apple-system,Segoe UI,Inter,Roboto,Arial;
        background:var(--bg); color:var(--fg)
    }
    a{
        color:inherit; text-decoration:none
    }
    .wrap{
        max-width:var(--max); margin:0 auto; padding:24px
    }
    .nav{
        display:flex; align-items:center; 
        justify-content:space-between;
        gap:16px;
        position:sticky; 
        top:0; 
        background:rgba(11,13,16,.7); 
        backdrop-filter:blur(10px);
        border-bottom:1px solid var(--border)
    }
    .nav .wrap{
        display:flex; 
        align-items:center; 
        justify-content:space-between
    }
    .logo{
        font-weight:650; 
        letter-spacing:.2px
    }
    .links{
        display:flex; 
        gap:18px; 
        color:var(--muted)
    }
    .btn{
        position: relative;
        transform: translateY(0);
        transition: 
            transform 180ms cubic-bezier(.2,.8,.2,1),
            box-shadow 180ms cubic-bezier(.2,.8,.2,1),
            border-color 180ms ease,
            background 180ms ease,
            filter 180ms ease;
        will-change: transform;
        display:inline-flex; 
        align-items:center; 
        gap:10px; 
        padding:10px 14px;
        border:1px solid var(--border); 
        border-radius:12px; 
        background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02))

    }
    /* Subtiler Lift + stärkerer Schatten */
    .btn:hover, .btn:focus-visible{
        transform: translateY(-2px);
        box-shadow: 0 14px 30px rgba(0,0,0,.35);
        filter: brightness(1.05);
    }
    .btn.primary{
        border-color:rgba(124,92,255,.35);
        box-shadow:0 0 0 4px rgba(124,92,255,.12) inset
        }
    .btn.primary:hover, .btn.primary:focus-visible{
        border-color: rgba(124,92,255,.60);
        box-shadow: 0 14px 30px rgba(0,0,0,.35),    0 0 0 4px rgba(124,92,255,.18) inset;
    }
    /* Klick-Feedback */
    .btn:active{
        transform: translateY(0);
        box-shadow: 0 8px 18px rgba(0,0,0,.30);
    }

    /* Optional: sichtbarer Fokus für Tastatur */
        .btn:focus-visible{
        outline: none;
    }

    /* Reduced motion */
    @media (prefers-reduced-motion: reduce){
        .btn{ transition: none !important; }
    }
    
    .hero{
        padding:64px 0 28px
    }
    h1{
        font-size:clamp(36px,5vw,64px);
        line-height:1.05; 
        margin:0 0 14px
    }
    
    .lead{
        max-width:62ch; 
        color:var(--muted); 
        margin:0 0 22px
    }
    .card h3{
        margin:0 0 6px; 
        font-size:18px
    }
    .card p{
        margin:0; 
        color:var(--muted)
    }
    .footer{
        padding:40px 0; 
        color:var(--muted); 
        border-top:1px solid var(--border)
    }
    @media (max-width:860px){
        .card{grid-column:span 12}
        .links{display:none} 
        }
    
    .hero--with-bg{
    position:relative;
    border:1px solid var(--border);
    border-radius:24px;
    overflow:hidden;
    padding:72px 22px;
    min-height: clamp(420px, 60vh, 680px);
    display:flex;
    align-items:flex-end;
    }

    .hero__inner{
    position:relative;
    z-index:2;
    max-width: 72ch;
    }

    .hero__actions{ display:flex; gap:12px; flex-wrap:wrap; }

    .hero__bg{
    position:absolute;
    inset:0;
    background-image: url("assets/hero.jpg"); /* <- put your image here */
    background-size: cover;
    background-position: center;
    transform: scale(1.02);
    filter: saturate(1.05) contrast(1.02);
    }

    .hero__overlay{
    position:absolute;
    inset:0;
    /* Darken the image for text contrast */
    background:
        radial-gradient(1200px 700px at 20% 30%, rgba(0,0,0,.25), rgba(0,0,0,.65)),
        linear-gradient(180deg, rgba(11,13,16,.10), rgba(11,13,16,.85));
    z-index:1;
    }

    .projects{
        display:grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 28px;
        padding: 22px 0 48px;
    }
    .project{
        display:block;
        text-decoration:none;
        color:inherit;
    }

    .projectmedia{
        border-radius: 22px;
        overflow: hidden; /* masks image corners */
        background: #0f1217;
        aspect-ratio: 16 / 10;
        border: 1px solid var(--border);
    }   

    .projectmedia img{
        width:100%;
        height:100%;
        object-fit: cover;
        display:block;
        transform: scale(1.01);
    }

    .project__body{
        padding-top: 16px;
    }

    .project__title{
        margin: 0 0 6px;
        font-size: 30px;
        line-height: 1.05;
        letter-spacing: -0.02em;
        font-weight: 500;
        /*color: #111;  screenshot is light theme */
    }

    .project__desc{
        margin: 0 0 14px;
        color: rgba(255, 255, 255, 0.72);
        max-width: 56ch;
    }

    .project__tags{
        display:flex;
        flex-wrap: wrap;
        gap: 10px;
    }

    .tag{
        display:inline-flex;
        align-items:center;
        padding: 6px 14px;
        border-radius: 6px; /* pill */
        border: 1px solid rgba(17,17,17,.12);
        background: rgba(255, 221, 221, 0.7);
        color: rgba(17,17,17,.85);
        font-size: 13px;
        letter-spacing: .02em;
        text-transform: uppercase;
    }   

    /* Responsive */
    @media (max-width: 900px){
        .projects{ grid-template-columns: 1fr; gap: 22px; }
        .project__title{ font-size: 34px; }
    }


    /* Editorial Paragraph */
    .editorial{
        padding: 56px 0 40px;
        display: grid;
        grid-template-columns: 1fr 1.35fr;
        gap: 28px;
        align-items: start;
        border-top: 1px solid var(--border);
    }

    .editorial__title{
        margin: 0;
        font-size: clamp(34px, 4.3vw, 64px);
        line-height: 1.05;
        letter-spacing: -0.02em;
        font-weight: 500;
    }

    .editorial__eyebrow{
        margin: 6px 0 14px;
        font-size: 18px;
        letter-spacing: .14em;
        text-transform: uppercase;
        color: var(--muted);
    }

    .editorial__text{
        margin: 0;
        font-size: clamp(18px, 2.1vw, 34px);
        line-height: 1.25;
        letter-spacing: -0.01em;
    }


    /* Header */




    /* Mobile stack */
    @media (max-width: 900px){
        .editorial{ grid-template-columns: 1fr; padding: 36px 0 10px; }
        .editorial__eyebrow{ margin-top: 0; }
    }

    /* Höhe deines sticky Headers als Offset für Anchor-Jumps */
    :root{
        --header-offset: 90px; /* ggf. anpassen */
    }

    /* Für alle Sprungziele (ids) oder gezielt für die Sections */
    #work {
        scroll-margin-top: var(--header-offset);
    }


/* ------------------------------------------------------------
   Clean "bracket" resolution for project cards
   - Keeps your current layout
   - Animates the .projectmedia frame (border/glow) on hover
------------------------------------------------------------ */

:root{
  /* Reuse your accent; add a faint glow color for consistency */
  --accent-glow: rgba(255, 255, 255, 0.22);
}

/* Make focus states visible and consistent */
.project:focus-visible {
  outline: none; /* we draw our own focus ring */
}

/* The bracket/frame: use layered backgrounds instead of fiddly borders */
.projectmedia{
  position: relative;
  border: 1px solid transparent; /* border is "painted" via background layers */
  background:
    /* inner surface */
    linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01)) padding-box,
    /* default border */
    linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.06)) border-box;
  transition:
    transform 220ms cubic-bezier(.2,.8,.2,1),
    box-shadow 220ms cubic-bezier(.2,.8,.2,1),
    background 220ms ease;
  will-change: transform;
}

/* Glow layer */
.projectmedia::after{
  content:"";
  position:absolute;
  inset:-2px;
  border-radius: 24px; /* slightly larger than 22px to sit outside */
  pointer-events:none;
  opacity: 0;
  transition: opacity 220ms ease;
  background: radial-gradient(700px 260px at 20% 10%, var(--accent-glow), rgba(124,92,255,0) 60%);
  filter: blur(2px);
}

/* Hover + keyboard focus: lift + accent border */
.project:hover .projectmedia,
.project:focus-visible .projectmedia{
  transform: translateY(-4px);
  box-shadow: 0 22px 50px rgba(0,0,0,.45);
  background:
    linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.01)) padding-box,
    linear-gradient(180deg, rgb(136, 136, 136), rgba(255, 92, 92,.18)) border-box;
}

.project:hover .projectmedia::after,
.project:focus-visible .projectmedia::after{
  opacity: 1;
}

/* Image: restrained zoom for a clean feel */
.projectmedia img{
  transition: transform 320ms cubic-bezier(.2,.8,.2,1);
  transform: scale(1.01);
}

.project:hover .projectmedia img,
.project:focus-visible .projectmedia img{
  transform: scale(1.05);
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .projectmedia,
  .projectmedia::after,
  .projectmedia img {
    transition: none !important;
  }
}

