/* ===========================================
   raumzeit Design System - BEM Architecture
   =========================================== */
:root{
  --rz-black:#0a0a0a;--rz-white:#f5f4f0;--rz-accent:#c8ff00;--rz-accent-2:#ff3c00;
  --rz-gray-100:#1a1a1a;--rz-gray-200:#2e2e2e;--rz-gray-400:#888;--rz-gray-600:#555;
  --rz-font-display:'Bebas Neue','Arial Narrow',sans-serif;
  --rz-font-body:'DM Sans','Helvetica Neue',sans-serif;
  --rz-font-mono:'DM Mono','Courier New',monospace;
  --rz-ease:cubic-bezier(0.25,0.46,0.45,0.94);
  --rz-gap:clamp(1rem,3vw,3rem);
  --rz-section-gap:clamp(4rem,10vw,10rem);
  --rz-max-width:1320px;
}
@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,700;1,9..40,300&family=DM+Mono:wght@300;400&display=swap');
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{background:var(--rz-black);color:var(--rz-white);font-family:var(--rz-font-body);font-size:clamp(15px,1.1vw,17px);-webkit-font-smoothing:antialiased}
body{background:var(--rz-black);overflow-x:hidden;line-height:1.65}
#smooth-wrapper{overflow:hidden}#smooth-content{will-change:transform}
img,video{max-width:100%;display:block}a{color:inherit;text-decoration:none}

/* Noise */
.rz-noise::after{content:'';position:fixed;inset:-50%;width:200%;height:200%;opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  pointer-events:none;z-index:9999;animation:rz-noise 8s steps(2) infinite}
@keyframes rz-noise{0%{transform:translate(0,0)}25%{transform:translate(-2%,-1%)}50%{transform:translate(1%,2%)}75%{transform:translate(-1%,1%)}}

/* Page overlay */
.rz-page-overlay{position:fixed;inset:0;background:var(--rz-accent);z-index:9990;pointer-events:none;transform-origin:left}

/* Cursor */
.rz-cursor{position:fixed;width:8px;height:8px;background:var(--rz-accent);border-radius:50%;pointer-events:none;z-index:9998;transform:translate(-50%,-50%)}
.rz-cursor-ring{position:fixed;width:36px;height:36px;border:1px solid rgba(200,255,0,.5);border-radius:50%;pointer-events:none;z-index:9997;transform:translate(-50%,-50%)}

/* Layout */
.rz-container{width:min(var(--rz-max-width),100% - 2*var(--rz-gap));margin-inline:auto}
.rz-grid{display:grid;gap:var(--rz-gap)}
.rz-grid--2{grid-template-columns:repeat(2,1fr)}
.rz-grid--3{grid-template-columns:repeat(3,1fr)}
.rz-grid--asymm{grid-template-columns:1fr 1.6fr}
@media(max-width:768px){.rz-grid--2,.rz-grid--3,.rz-grid--asymm{grid-template-columns:1fr}}

/* Typography */
.rz-display{font-family:var(--rz-font-display);font-size:clamp(3.5rem,12vw,14rem);line-height:.92;letter-spacing:-.01em;text-transform:uppercase}
.rz-headline{font-family:var(--rz-font-display);font-size:clamp(2rem,6vw,6rem);line-height:.95;text-transform:uppercase;letter-spacing:-.01em}
.rz-subline{font-family:var(--rz-font-body);font-size:clamp(.85rem,1.2vw,1.1rem);font-weight:300;letter-spacing:.18em;text-transform:uppercase;color:var(--rz-gray-400)}
.rz-body{font-size:clamp(1rem,1.3vw,1.2rem);font-weight:300;line-height:1.75;color:var(--rz-gray-400)}
.rz-mono{font-family:var(--rz-font-mono);font-size:.75rem;letter-spacing:.05em;color:var(--rz-accent)}

/* NAV */
.rz-nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:1.5rem var(--rz-gap);display:flex;align-items:center;justify-content:space-between;transition:background .5s,padding .5s}
.rz-nav--scrolled{background:rgba(10,10,10,.92);backdrop-filter:blur(12px);padding-block:1rem;border-bottom:1px solid var(--rz-gray-200)}
.rz-nav__logo{font-family:var(--rz-font-display);font-size:1.6rem;letter-spacing:.08em;text-transform:uppercase}
.rz-nav__logo span{color:var(--rz-accent)}
.rz-nav__list{display:flex;gap:2.5rem;list-style:none}
.rz-nav__link{font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:var(--rz-gray-400);position:relative;transition:color .3s}
.rz-nav__link::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:1px;background:var(--rz-accent);transition:width .35s var(--rz-ease)}
.rz-nav__link:hover,.rz-nav__link--active{color:var(--rz-white)}
.rz-nav__link:hover::after,.rz-nav__link--active::after{width:100%}
.rz-nav__burger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:4px;background:none;border:none}
.rz-nav__burger span{display:block;width:28px;height:1px;background:var(--rz-white)}
@media(max-width:768px){
  .rz-nav__burger{display:flex}
  .rz-nav__list{position:fixed;inset:0;background:var(--rz-black);flex-direction:column;align-items:center;justify-content:center;gap:3rem;transform:translateX(100%);transition:transform .5s var(--rz-ease);z-index:99}
  .rz-nav__list--open{transform:translateX(0)}
  .rz-nav__link{font-size:1.1rem}
}

/* HERO */
.rz-hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;padding-block:8rem 5rem;overflow:hidden}
.rz-hero__bg{position:absolute;inset:0;background:var(--rz-black);z-index:0}
.rz-hero__canvas{position:absolute;inset:0;z-index:1;opacity:.4;width:100%;height:100%}
.rz-hero__content{position:relative;z-index:2;padding-inline:var(--rz-gap)}
.rz-hero__eyebrow{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;opacity:0}
.rz-hero__eyebrow::before{content:'';width:3rem;height:1px;background:var(--rz-accent)}
.rz-hero__title{font-family:var(--rz-font-display);font-size:clamp(5rem,16vw,18rem);line-height:.88;text-transform:uppercase;letter-spacing:-.02em;overflow:hidden}
.rz-hero__title-line{display:block;overflow:hidden}
.rz-hero__title-word{display:inline-block;transform:translateY(110%)}
.rz-hero__title--accent{color:var(--rz-accent)}
.rz-hero__title--stroke{-webkit-text-stroke:1px var(--rz-white);color:transparent}
.rz-hero__scroll{position:absolute;bottom:2.5rem;right:var(--rz-gap);display:flex;flex-direction:column;align-items:center;gap:.75rem;z-index:3}
.rz-hero__scroll-label{writing-mode:vertical-lr;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--rz-gray-400)}
.rz-hero__scroll-line{width:1px;height:4rem;background:linear-gradient(to bottom,var(--rz-accent),transparent);animation:rz-sp 2s ease-in-out infinite}
@keyframes rz-sp{0%,100%{opacity:1}50%{opacity:.3}}

/* MARQUEE */
.rz-marquee{overflow:hidden;border-top:1px solid var(--rz-gray-200);border-bottom:1px solid var(--rz-gray-200);padding-block:1.2rem}
.rz-marquee__track{display:flex;gap:4rem;width:max-content;animation:rz-marq 18s linear infinite}
.rz-marquee__item{font-family:var(--rz-font-display);font-size:1.5rem;letter-spacing:.1em;text-transform:uppercase;color:var(--rz-gray-400);white-space:nowrap;display:flex;align-items:center;gap:2rem}
.rz-marquee__item::after{content:'\25C6';color:var(--rz-accent);font-size:.6em}
@keyframes rz-marq{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* SECTION HEADER */
.rz-section-header{margin-bottom:clamp(3rem,6vw,6rem)}
.rz-section-header__num{font-family:var(--rz-font-mono);font-size:.75rem;color:var(--rz-accent);letter-spacing:.1em;margin-bottom:1rem}
.rz-section-header__title{font-family:var(--rz-font-display);font-size:clamp(2.5rem,7vw,7rem);text-transform:uppercase;line-height:.92;letter-spacing:-.01em}
.rz-section-header__title em{font-style:normal;color:var(--rz-accent)}

/* WORK */
.rz-work{padding-block:var(--rz-section-gap)}
.rz-work__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(380px,100%),1fr));gap:1px;background:var(--rz-gray-200);border:1px solid var(--rz-gray-200)}
.rz-work-card{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--rz-gray-100);cursor:pointer}
.rz-work-card__image{position:absolute;inset:0;object-fit:cover;width:100%;height:100%;transition:transform .7s var(--rz-ease),filter .7s;filter:saturate(0) brightness(.6)}
.rz-work-card__overlay{position:absolute;inset:0;background:linear-gradient(to top,var(--rz-black) 0%,transparent 60%);z-index:1}
.rz-work-card__content{position:absolute;bottom:0;left:0;right:0;padding:2rem;z-index:2;transform:translateY(2rem);transition:transform .4s var(--rz-ease)}
.rz-work-card__tags{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.75rem}
.rz-work-card__tag{font-family:var(--rz-font-mono);font-size:.65rem;letter-spacing:.1em;padding:.25em .6em;border:1px solid var(--rz-accent);color:var(--rz-accent);text-transform:uppercase}
.rz-work-card__title{font-family:var(--rz-font-display);font-size:1.8rem;line-height:1;text-transform:uppercase;color:var(--rz-white);margin-bottom:.5rem}
.rz-work-card__desc{font-size:.85rem;color:var(--rz-gray-400);opacity:0;transition:opacity .4s .1s}
.rz-work-card__placeholder{position:absolute;inset:0;background:linear-gradient(135deg,var(--rz-gray-100),var(--rz-gray-200))}
.rz-work-card__placeholder-num{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:var(--rz-font-display);font-size:6rem;color:var(--rz-gray-200);line-height:1}
.rz-work-card:hover .rz-work-card__image{transform:scale(1.06);filter:saturate(.3) brightness(.5)}
.rz-work-card:hover .rz-work-card__content{transform:translateY(0)}
.rz-work-card:hover .rz-work-card__desc{opacity:1}

/* ABOUT */
.rz-about{padding-block:var(--rz-section-gap)}
.rz-about__portrait{position:relative;aspect-ratio:3/4;overflow:hidden;background:var(--rz-gray-100)}
.rz-about__portrait-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,var(--rz-gray-100),var(--rz-gray-200));font-family:var(--rz-font-display);font-size:6rem;color:rgba(255,255,255,.04);letter-spacing:.1em}
.rz-about__badge{position:absolute;bottom:2rem;right:-1rem;width:8rem;height:8rem;background:var(--rz-accent);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--rz-font-mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--rz-black);text-align:center;line-height:1.3;padding:1rem;animation:rz-spin 12s linear infinite}
@keyframes rz-spin{to{transform:rotate(360deg)}}
.rz-about__meta{display:flex;flex-direction:column;justify-content:center;gap:2.5rem;padding-left:clamp(0px,4vw,4rem)}
.rz-about__skills{list-style:none;display:flex;flex-direction:column;gap:.75rem}
.rz-about__skill{display:flex;align-items:center;gap:1rem;font-size:.9rem;color:var(--rz-gray-400)}
.rz-about__skill::before{content:'';width:1.5rem;height:1px;background:var(--rz-accent);flex-shrink:0}
.rz-about__counter{display:flex;gap:3rem}
.rz-about__stat{display:flex;flex-direction:column;gap:.3rem}
.rz-about__stat-num{font-family:var(--rz-font-display);font-size:4rem;line-height:1}
.rz-about__stat-label{font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;color:var(--rz-gray-400)}

/* PROCESS */
.rz-process{padding-block:var(--rz-section-gap);counter-reset:rz-step}
.rz-process__item{display:grid;grid-template-columns:4rem 1fr;gap:2rem;padding-block:2.5rem;border-bottom:1px solid var(--rz-gray-200);counter-increment:rz-step}
.rz-process__num{font-family:var(--rz-font-mono);font-size:.75rem;color:var(--rz-accent);padding-top:.2rem}
.rz-process__num::before{content:counter(rz-step,decimal-leading-zero)}
.rz-process__title{font-family:var(--rz-font-display);font-size:clamp(1.4rem,2.5vw,2.2rem);text-transform:uppercase;color:var(--rz-white);margin-bottom:.75rem}
.rz-process__text{color:var(--rz-gray-400);font-size:.95rem;line-height:1.7}

/* BLOG */
.rz-blog{padding-block:var(--rz-section-gap)}
.rz-blog-card{border-top:1px solid var(--rz-gray-200);padding-block:2.5rem;display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:start;transition:border-color .3s;cursor:pointer}
.rz-blog-card:last-child{border-bottom:1px solid var(--rz-gray-200)}
.rz-blog-card:hover{border-color:var(--rz-accent)}
.rz-blog-card__meta{display:flex;align-items:center;gap:1rem;margin-bottom:.75rem}
.rz-blog-card__cat{font-family:var(--rz-font-mono);font-size:.7rem;color:var(--rz-accent);letter-spacing:.1em;text-transform:uppercase}
.rz-blog-card__date{font-size:.75rem;color:var(--rz-gray-600)}
.rz-blog-card__title{font-family:var(--rz-font-display);font-size:clamp(1.5rem,2.5vw,2.5rem);text-transform:uppercase;line-height:1.05;color:var(--rz-white);transition:color .3s}
.rz-blog-card__excerpt{font-size:.9rem;color:var(--rz-gray-400);margin-top:.5rem}
.rz-blog-card:hover .rz-blog-card__title{color:var(--rz-accent)}
.rz-blog-card__arrow{font-size:2rem;color:var(--rz-gray-400);align-self:center;transition:transform .35s var(--rz-ease),color .3s}
.rz-blog-card:hover .rz-blog-card__arrow{transform:translate(4px,-4px);color:var(--rz-accent)}

/* BTN */
.rz-btn{display:inline-flex;align-items:center;gap:.75rem;padding:1em 2em;font-size:.8rem;font-family:var(--rz-font-body);letter-spacing:.15em;text-transform:uppercase;cursor:pointer;border:none;position:relative;overflow:hidden;transition:color .35s}
.rz-btn--primary{background:var(--rz-accent);color:var(--rz-black)}
.rz-btn--ghost{background:transparent;color:var(--rz-white);border:1px solid var(--rz-gray-200)}
.rz-btn::before{content:'';position:absolute;inset:0;background:var(--rz-black);transform:scaleX(0);transform-origin:right;transition:transform .4s var(--rz-ease);z-index:0}
.rz-btn:hover::before{transform:scaleX(1);transform-origin:left}
.rz-btn--primary:hover{color:var(--rz-accent)}
.rz-btn--ghost:hover{color:var(--rz-accent)}
.rz-btn>*{position:relative;z-index:1}
.rz-btn__arrow{transition:transform .35s var(--rz-ease)}
.rz-btn:hover .rz-btn__arrow{transform:translateX(4px)}

/* DIVIDER */
.rz-divider{display:flex;align-items:center;gap:1.5rem;color:var(--rz-gray-600);font-family:var(--rz-font-mono);font-size:.7rem;letter-spacing:.1em}
.rz-divider::before,.rz-divider::after{content:'';flex:1;height:1px;background:var(--rz-gray-200)}

/* FOOTER */
.rz-footer{padding-block:4rem;border-top:1px solid var(--rz-gray-200)}
.rz-footer__top{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap;margin-bottom:3rem}
.rz-footer__logo{font-family:var(--rz-font-display);font-size:clamp(3rem,7vw,6rem);line-height:1;text-transform:uppercase;letter-spacing:-.02em}
.rz-footer__logo span{color:var(--rz-accent)}
.rz-footer__nav{display:flex;gap:2rem;list-style:none;flex-wrap:wrap}
.rz-footer__nav-link{font-size:.8rem;letter-spacing:.15em;text-transform:uppercase;color:var(--rz-gray-400);transition:color .3s}
.rz-footer__nav-link:hover{color:var(--rz-accent)}
.rz-footer__bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;padding-top:2rem;border-top:1px solid var(--rz-gray-200)}
.rz-footer__copy{font-size:.75rem;color:var(--rz-gray-600);letter-spacing:.05em}

/* POST */
.rz-post{padding-block:clamp(6rem,12vw,12rem) var(--rz-section-gap);max-width:72ch;margin-inline:auto;padding-inline:var(--rz-gap)}
.rz-post__kicker{font-family:var(--rz-font-mono);font-size:.75rem;color:var(--rz-accent);letter-spacing:.1em;text-transform:uppercase;margin-bottom:1rem;display:flex;align-items:center;gap:1rem}
.rz-post__kicker::before{content:'';width:2rem;height:1px;background:var(--rz-accent)}
.rz-post__title{font-family:var(--rz-font-display);font-size:clamp(2.5rem,6vw,5.5rem);text-transform:uppercase;line-height:.95;margin-bottom:2rem}
.rz-post__content{color:var(--rz-gray-400);font-size:1.05rem;line-height:1.85}
.rz-post__content h2{font-family:var(--rz-font-display);font-size:2rem;text-transform:uppercase;color:var(--rz-white);margin-block:2rem 1rem}
.rz-post__content p{margin-bottom:1.5rem}

/* IMPRESSUM */
.rz-impressum{padding-block:clamp(6rem,10vw,10rem) var(--rz-section-gap);padding-inline:var(--rz-gap);max-width:64ch;margin-inline:auto}
.rz-impressum__section{margin-bottom:3rem}
.rz-impressum__title{font-family:var(--rz-font-display);font-size:1.4rem;text-transform:uppercase;color:var(--rz-white);margin-bottom:1rem}
.rz-impressum__text{color:var(--rz-gray-400);font-size:.9rem;line-height:1.8}

/* REVEAL */
.rz-reveal{opacity:0;transform:translateY(40px)}
.rz-reveal-left{opacity:0;transform:translateX(-40px)}
.rz-reveal-right{opacity:0;transform:translateX(40px)}
.rz-reveal-scale{opacity:0;transform:scale(.9)}
