/* ReformRebell — alive layer: phone/iPad navigation + motion. Loaded after site.css, keeps the editorial look. */
:root{--ease:cubic-bezier(.2,.7,.15,1);--rail-w:92px;--tabbar-h:66px}
html{scroll-behavior:smooth}
@view-transition{navigation:auto}
::view-transition-old(root){animation:rr-fade-out .2s ease both}
::view-transition-new(root){animation:rr-fade-in .4s var(--ease) both}
@keyframes rr-fade-out{to{opacity:0}}
@keyframes rr-fade-in{from{opacity:0}}
.sidebar{view-transition-name:rr-sidebar}
.tabbar{view-transition-name:rr-tabbar}

/* building blocks */
.ico{display:block;flex-shrink:0}
.tabbar,.sheet,.bar-tag,.rail-more,.nav-short{display:none}
.sidebar .ico{display:none}
.sheet[hidden]{display:none!important}
.menu-toggle{display:none!important}

/* desktop rail: as designed, a little breath */
.rail-dot{position:relative}
.rail-dot:after{content:'';position:absolute;inset:0;border-radius:50%;border:1px solid var(--signal);animation:rr-ping 3.2s ease-out infinite}
@keyframes rr-ping{0%{transform:scale(1);opacity:.7}70%,100%{transform:scale(2.3);opacity:0}}
.sidebar nav a{transition:color .18s ease,padding-left .35s var(--ease)}
.sidebar nav a:hover{padding-left:6px}
.sidebar nav a .nav-arrow{transition:transform .3s var(--ease)}
.sidebar nav a:hover .nav-arrow{transform:translate(2px,-2px)}
@media(min-width:1200px){.rail-bottom .rail-more{display:none}}

/* iPad 768–1199: slim icon rail */
@media(min-width:768px) and (max-width:1199px){
  .mobile-bar{display:none}
  .site-shell{margin-left:var(--rail-w)}
  .sidebar{display:flex;top:0;height:100dvh;width:var(--rail-w);padding:20px 9px 18px;border-right:1px solid var(--line);align-items:stretch;overflow-y:auto;scrollbar-width:none}
  .sidebar::-webkit-scrollbar{display:none}
  .sidebar>.wordmark{display:block;font-size:12.5px;letter-spacing:-.9px;text-align:center;line-height:.9}
  .rail-caption{display:none}
  .sidebar nav{margin-top:26px;max-width:none;width:auto;align-self:stretch;display:flex;flex-direction:column;gap:4px}
  .sidebar nav a{flex-direction:column;justify-content:center;gap:6px;min-height:60px;padding:9px 2px;border:0;border-radius:16px;text-align:center;position:relative}
  .sidebar nav a:last-child{border:0}
  .sidebar nav a:hover{padding-left:2px;background:#ece9e4;color:var(--ink)}
  .sidebar nav a[aria-current]{background:var(--ink);color:var(--paper)}
  .sidebar nav a[aria-current]:after{content:'';position:absolute;top:8px;right:12px;width:6px;height:6px;border-radius:50%;background:var(--signal)}
  .sidebar .ico{display:block;width:22px;height:22px}
  .sidebar .nav-number,.sidebar .nav-label,.sidebar .nav-arrow{display:none}
  .nav-short{display:block;font-size:9.5px;letter-spacing:.07em;text-transform:uppercase;font-weight:750;line-height:1}
  .rail-bottom{margin-top:auto;padding-top:16px;display:flex;flex-direction:column;align-items:stretch;gap:12px;max-width:none}
  .rail-bottom>a,.rail-bottom>p{display:none}
  .rail-more{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:60px;border:1px solid var(--line);border-radius:16px;background:transparent;color:var(--ink);font-size:9.5px;letter-spacing:.07em;text-transform:uppercase;font-weight:750;transition:background .2s,border-color .2s}
  .rail-more:hover,.rail-more[aria-expanded=true]{background:#ece9e4;border-color:var(--ink)}
  .rail-more .ico{width:22px;height:22px}
  .rail-dot{display:block!important;align-self:center;margin-top:4px;width:12px;height:12px}
  .sheet-panel{left:calc(var(--rail-w) + 10px);top:10px;bottom:10px;width:min(440px,calc(100vw - var(--rail-w) - 20px));border-radius:26px;transform:translateX(-18px);opacity:0}
  .sheet.open .sheet-panel{transform:none;opacity:1}
}

/* phone <768: floating tab bar + bottom sheet */
@media(max-width:767px){
  body.rr-site{padding-bottom:calc(var(--tabbar-h) + 22px + env(safe-area-inset-bottom))}
  .mobile-bar{display:flex;height:58px;padding:10px 18px;background:rgba(248,247,245,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
  .mobile-bar .wordmark{font-size:20px}
  .bar-tag{display:flex;align-items:center;gap:8px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:700}
  .bar-tag i{width:9px;height:9px;border-radius:50%;background:var(--signal);animation:rr-blink 2.6s ease-in-out infinite}
  .sidebar{display:none!important}
  .tabbar{display:flex;position:fixed;z-index:80;left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));height:var(--tabbar-h);padding:6px;gap:2px;background:rgba(248,247,245,.9);backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);border:1px solid var(--line);border-radius:24px;box-shadow:0 14px 34px -10px rgba(25,25,25,.25);transition:transform .45s var(--ease)}
  .tabbar.tuck{transform:translateY(calc(100% + 16px))}
  .tabbar a,.tabbar button{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:0;background:transparent;color:var(--ink);border-radius:18px;padding:0;position:relative;font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;font-weight:750;line-height:1;transition:background .3s var(--ease),color .3s var(--ease),transform .2s var(--ease)}
  .tabbar a:active,.tabbar button:active{transform:scale(.93)}
  .tabbar .ico{width:22px;height:22px}
  .tabbar a[aria-current],.tabbar button[data-current]{background:var(--ink);color:var(--paper)}
  .tabbar a[aria-current]:after,.tabbar button[data-current]:after{content:'';position:absolute;top:7px;right:calc(50% - 19px);width:6px;height:6px;border-radius:50%;background:var(--signal)}
  .sheet-panel{left:0;right:0;bottom:0;max-height:88dvh;border-radius:28px 28px 0 0;padding-bottom:calc(22px + env(safe-area-inset-bottom));transform:translateY(100%)}
  .sheet-panel:before{content:'';display:block;width:42px;height:4px;border-radius:4px;background:var(--line);margin:-6px auto 12px}
  .sheet.open .sheet-panel{transform:none}
  .sheet-nav a{font-size:21px;min-height:52px}
}
@keyframes rr-blink{50%{transform:scale(.55);opacity:.55}}

/* the "Mehr" sheet */
.sheet{display:block;position:fixed;inset:0;z-index:120}
.sheet-backdrop{position:absolute;inset:0;background:rgba(25,25,25,.46);opacity:0;transition:opacity .35s ease;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.sheet.open .sheet-backdrop{opacity:1}
.sheet-panel{position:absolute;background:var(--paper);color:var(--ink);padding:18px 22px 22px;overflow-y:auto;overscroll-behavior:contain;transition:transform .5s var(--ease),opacity .35s ease;box-shadow:0 -20px 60px -20px rgba(0,0,0,.35)}
@media(min-width:1200px){.sheet-panel{left:calc(var(--rail) + 12px);top:12px;bottom:12px;width:440px;border-radius:26px;transform:translateX(-18px);opacity:0}.sheet.open .sheet-panel{transform:none;opacity:1}}
.sheet-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:10px}
.sheet-x{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--ink);display:grid;place-items:center;transition:background .2s,color .2s,transform .35s var(--ease)}
.sheet-x:hover{background:var(--ink);color:var(--paper);transform:rotate(90deg)}
.sheet-nav a{display:flex;align-items:center;gap:14px;min-height:56px;border-top:1px solid var(--line);font-size:23px;font-weight:800;letter-spacing:-.03em;opacity:0;transform:translateY(10px);transition:opacity .45s ease,transform .6s var(--ease),color .2s}
.sheet-nav a:last-child{border-bottom:1px solid var(--line)}
.sheet.open .sheet-nav a{opacity:1;transform:none;transition-delay:calc(var(--n,0)*35ms + 100ms)}
.sheet-nav a[aria-current],.sheet-nav a:hover{color:var(--red-text)}
.sheet-nav .nav-number{font-size:10px;font-weight:400;color:var(--muted);letter-spacing:0;width:18px}
.sheet-nav .nav-arrow{margin-left:auto;font-weight:400}
.sheet-more{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;margin-top:14px}
.sheet-more a{display:flex;align-items:center;min-height:46px;border-bottom:1px solid var(--line);font-size:13.5px;font-weight:650}
.sheet-more a[aria-current],.sheet-more a:hover{color:var(--red-text)}
body.sheet-open{overflow:hidden}

/* motion system — only with JS and without reduced motion */
.progress-line{position:fixed;top:0;left:0;right:0;height:2px;z-index:130;background:var(--signal);transform:scaleX(var(--p,0));transform-origin:0 50%;pointer-events:none}
.js-motion [data-reveal]{opacity:0;transform:translate3d(0,30px,0);transition:opacity .9s var(--ease),transform 1s var(--ease);transition-delay:calc(var(--i,0)*85ms)}
.js-motion [data-reveal="fade"]{transform:none}
.js-motion [data-reveal="wipe"]{opacity:1;transform:none;position:relative}
.js-motion [data-reveal="wipe"]:before{content:"";position:absolute;inset:0;z-index:3;background:var(--paper);transform-origin:50% 100%;transition:transform 1.25s var(--ease);transition-delay:calc(var(--i,0)*85ms);pointer-events:none}
.js-motion [data-reveal="wipe"].in:before{transform:scaleY(0)}
.js-motion [data-reveal].in{opacity:1;transform:none}

.ln{display:block;overflow:hidden;padding:.05em 0 .08em;margin:-.05em 0 -.08em}
.ln>span{display:block}
.js-motion .ln>span{transform:translate3d(0,110%,0);transition:transform 1.05s var(--ease);transition-delay:calc(var(--l,0)*105ms + 60ms)}
.js-motion .lines-in .ln>span{transform:none}
.js-motion .hero-photo:before{content:"";position:absolute;inset:0;z-index:3;background:var(--ink);transform-origin:50% 0;animation:rr-unveil 1.3s var(--ease) .15s forwards}
@keyframes rr-unveil{to{transform:scaleY(0)}}
[data-parallax]{transform:translate3d(0,var(--py,0px),0) scale(1.12)}
.js-motion .hero-type .eyebrow,.js-motion .hero-type>p,.js-motion .hero-type .text-link{opacity:0;transform:translateY(14px);animation:rr-up .9s var(--ease) forwards}
.js-motion .hero-type>p{animation-delay:.75s}.js-motion .hero-type .text-link{animation-delay:.95s}
@keyframes rr-up{to{opacity:1;transform:none}}
.eyebrow:before,.section-label:before{animation:rr-dot 3.4s ease-in-out infinite}
@keyframes rr-dot{50%{transform:scale(.6)}}
.ticker{overflow:hidden;background:var(--ink);color:var(--paper);margin-top:26px;user-select:none}
.ticker-track{display:flex;width:max-content;animation:rr-ticker 50s linear infinite}
.ticker:hover .ticker-track{animation-play-state:paused}
.ticker span{display:flex;align-items:center;gap:26px;padding:15px 26px 15px 0;font-size:13px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
.ticker span:after{content:'';width:8px;height:8px;border-radius:50%;background:var(--signal);flex-shrink:0}
.ticker span:nth-child(3n){color:var(--signal)}
@keyframes rr-ticker{to{transform:translateX(-50%)}}
.text-link{border-bottom-color:transparent;background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;transition:color .18s,background-size .45s var(--ease)}
.text-link:hover{background-size:0 1px;background-position:100% 100%}
.button{transition:background .2s,color .2s,transform .3s var(--ease)}
.button:hover{transform:translateY(-2px)}
.chips a{transition:background .2s,color .2s,transform .3s var(--ease)}
.chips a:hover{transform:translateY(-2px)}
.story-card img{transition:filter .5s ease,transform 1s var(--ease)}
.story-card a:hover img{transform:scale(1.03)}
.story-card>a{display:block;overflow:hidden}
.story-card h2,.story-card h3{text-decoration:underline;text-decoration-color:transparent;text-decoration-thickness:2px;text-underline-offset:5px;transition:text-decoration-color .3s}
.story-card a:hover h2,.story-card a:hover h3{text-decoration-color:currentColor}
.learning-row{transition:padding-left .4s var(--ease)}
.learning-row:hover{padding-left:10px}
.learning-row:hover h3{text-decoration:none}
.feature-story>img{transition:transform 1.4s var(--ease),filter .6s}
.feature-story:hover>img{transform:scale(1.04);filter:grayscale(.4)}
.black-panel,.hero-type,.statement{position:relative;isolation:isolate}
.black-panel:before,.hero-type:before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.06;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.page-head{position:relative;border-bottom-color:transparent}
.page-head:after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--ink);transform-origin:0 50%}
.js-motion .page-head:after{transform:scaleX(0);animation:rr-draw 1.3s var(--ease) .3s forwards}
@keyframes rr-draw{to{transform:scaleX(1)}}
.js-motion .section-head{border-top-color:transparent;position:relative}
.js-motion .section-head:before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:0 50%;transition:transform 1.2s var(--ease)}
.js-motion .section-head.in:before{transform:scaleX(1)}
.statement{overflow:hidden}
.statement:after{content:'';position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;border:1px solid rgba(25,25,25,.25);z-index:-1;animation:rr-orbit 14s ease-in-out infinite}
@keyframes rr-orbit{50%{transform:translate(-30px,40px) scale(1.15)}}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .ticker-track,.bar-tag i,.rail-dot:after,.eyebrow:before,.section-label:before,.statement:after{animation:none}
  [data-parallax]{transform:none!important}
  .sheet-panel,.sheet-backdrop,.sheet-nav a{transition:none!important}
}
@media print{.tabbar,.sheet,.progress-line,.ticker,.sidebar,.mobile-bar{display:none!important}body.rr-site{padding-bottom:0}.site-shell{margin:0}}

.hero-photo,.feature-story,.berlin-grid figure{overflow:hidden}html,body.rr-site{overflow-x:clip}
