/* Bubbleblue – gemeinsames Stylesheet für Unterseiten (Portfolio, Blog) */
:root{
  --ink:#05080f; --deep:#0a1220; --surface:#0e1728;
  --line:rgba(120,160,220,.14);
  --text:#e9eef7; --muted:#93a1b8;
  --blue:#4d9fff; --glow:#7fd4ff; --rec:#ff4d5e;
  --radius:18px;
  --font-display:"Bricolage Grotesque",sans-serif;
  --font-body:"Archivo",sans-serif;
  --font-mono:"Space Mono",monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--ink);color:var(--text);font-family:var(--font-body);font-size:17px;line-height:1.65;overflow-x:hidden}
::selection{background:var(--blue);color:#03060c}
body::after{content:"";position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.05;
  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.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.6'/%3E%3C/svg%3E")}
main,header,footer{position:relative;z-index:2}
.wrap{max-width:1160px;margin:0 auto;padding:0 24px}

/* Navigation */
header{position:sticky;top:0;z-index:50;backdrop-filter:blur(14px);background:rgba(5,8,15,.72);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:68px}
.logo{display:flex;align-items:center;gap:11px;font-family:var(--font-display);font-weight:800;font-size:1.25rem;letter-spacing:-.02em;color:var(--text);text-decoration:none}
.logo-mark{filter:drop-shadow(0 0 12px rgba(77,159,255,.55));transition:transform .3s,filter .3s;flex-shrink:0}
.logo:hover .logo-mark{transform:scale(1.08) rotate(-4deg);filter:drop-shadow(0 0 18px rgba(127,212,255,.8))}
.nav-links{display:flex;gap:28px;align-items:center}
.nav-links a{color:var(--muted);text-decoration:none;font-size:.92rem;font-weight:500;transition:color .2s}
.nav-links a:hover,.nav-links a:focus-visible{color:var(--text)}
.nav-links a.active{color:var(--text)}
@media(max-width:760px){.nav-links a:not(.btn){display:none}}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-body);font-weight:600;font-size:.95rem;padding:13px 24px;border-radius:999px;text-decoration:none;transition:transform .2s,box-shadow .2s,background .2s;cursor:pointer;border:none}
.btn-blue{background:linear-gradient(135deg,#2263d1,#153e9f);color:#fff;font-weight:700;letter-spacing:.01em;box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 0 0 1px rgba(127,212,255,.35),0 8px 28px rgba(46,111,224,.35)}
.btn-blue:hover,.btn-blue:focus-visible{background:linear-gradient(135deg,#2e7ae8,#1b55c4);transform:translateY(-2px);box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 0 0 1px rgba(127,212,255,.5),0 14px 36px rgba(46,111,224,.5)}
.btn-ghost{background:transparent;color:var(--text);border:1px solid var(--line)}
.btn-ghost:hover,.btn-ghost:focus-visible{border-color:rgba(127,212,255,.45);background:rgba(77,159,255,.06)}
a:focus-visible,button:focus-visible{outline:2px solid var(--glow);outline-offset:3px}

/* Typo-Bausteine */
section{padding:88px 0}
.eyebrow{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--blue);display:flex;align-items:center;gap:12px;margin-bottom:18px}
.eyebrow::before{content:"";width:34px;height:1px;background:var(--blue)}
h1.page-title{font-family:var(--font-display);font-weight:800;font-size:clamp(2.2rem,5vw,3.6rem);line-height:1.08;letter-spacing:-.03em;max-width:18ch}
h1 .hl,.page-title .hl{background:linear-gradient(115deg,var(--glow) 0%,var(--blue) 55%,#3e7ce6 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.lead{color:var(--muted);max-width:60ch;margin-top:18px;font-size:1.06rem}

/* Portfolio-Grid */
.pf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:56px}
@media(max-width:960px){.pf-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.pf-grid{grid-template-columns:1fr}}
.pf-card{border:1px solid var(--line);border-radius:22px;overflow:hidden;background:rgba(14,23,40,.55);transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s,border-color .3s;display:flex;flex-direction:column;text-decoration:none;color:inherit}
.pf-card:hover{transform:translateY(-8px);box-shadow:0 22px 50px rgba(46,111,224,.28);border-color:rgba(127,212,255,.4)}
.pf-media{aspect-ratio:9/12;position:relative;background:radial-gradient(120% 90% at 20% 0%,rgba(77,159,255,.22),transparent 55%),linear-gradient(200deg,#101c33,#080e1a 70%)}
.pf-media img{width:100%;height:100%;object-fit:cover;display:block}
.pf-views{position:absolute;top:14px;left:14px;display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:.78rem;font-weight:700;color:#04070d;background:linear-gradient(135deg,var(--glow),var(--blue));border-radius:999px;padding:6px 12px}
.pf-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:56px;height:56px;border-radius:50%;border:1px solid rgba(127,212,255,.5);background:rgba(8,14,26,.55);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center}
.pf-play::after{content:"";border-style:solid;border-width:10px 0 10px 16px;border-color:transparent transparent transparent var(--glow);margin-left:4px}
.pf-body{padding:22px 22px 26px;display:flex;flex-direction:column;gap:8px;flex:1}
.pf-cat{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}
.pf-title{font-family:var(--font-display);font-weight:700;font-size:1.15rem;letter-spacing:-.01em}
.pf-desc{color:var(--muted);font-size:.93rem}

/* Blog */
.blog-list{display:flex;flex-direction:column;gap:22px;margin-top:56px;max-width:820px}
.blog-card{border:1px solid var(--line);border-radius:var(--radius);background:rgba(14,23,40,.55);padding:32px;text-decoration:none;color:inherit;transition:border-color .3s,transform .3s;display:block}
.blog-card:hover{border-color:rgba(127,212,255,.4);transform:translateY(-4px)}
.blog-date{font-family:var(--font-mono);font-size:.76rem;letter-spacing:.1em;color:var(--muted)}
.blog-card h2{font-family:var(--font-display);font-weight:700;font-size:1.35rem;letter-spacing:-.01em;margin:10px 0}
.blog-card p{color:var(--muted);font-size:.97rem}
.blog-more{margin-top:14px;display:inline-block;color:var(--glow);font-weight:600;font-size:.92rem}

/* Blog-Artikel */
.article{max-width:760px;margin-top:24px}
.article h2{font-family:var(--font-display);font-weight:700;font-size:1.6rem;letter-spacing:-.01em;margin:44px 0 16px}
.article h3{font-family:var(--font-display);font-weight:700;font-size:1.25rem;margin:34px 0 12px}
.article p{color:var(--muted);margin-bottom:18px}
.article strong{color:var(--text)}
.article ul{margin:0 0 18px 22px;color:var(--muted)}
.article li{margin-bottom:8px}
.article a{color:var(--glow)}
.back-link{display:inline-flex;align-items:center;gap:8px;color:var(--muted);text-decoration:none;font-size:.9rem;margin-bottom:32px}
.back-link:hover{color:var(--text)}

/* Footer */
footer{border-top:1px solid var(--line);padding:44px 0;color:var(--muted);font-size:.88rem;margin-top:40px}
.footer-row{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.footer-row a{color:var(--muted);text-decoration:none}
.footer-row a:hover{color:var(--text)}

/* Reveals */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}html{scroll-behavior:auto}}
