/* Fototeam Brig – Gestaltung «Blaue Stunde».
   1. Grundlagen und Seitenteile  2. Bausteine (Bilder, Galerien, Formulare)  3. Ergänzungen CMS */

@font-face{font-family:'Archivo';src:url('../fonts/archivo-var.woff') format('woff');font-weight:100 900;font-stretch:62% 125%;font-display:swap}

:root{--ink:#2B2823; --dark:#3A362F; --paper:#FAF6EC; --card:#FFFFFF;
  --line:#D3DAE1; --muted:#6A6152; --yellow:#FDEA0A; --gold:#766700;
  --display:'Bricolage Grotesque','Helvetica Neue',Helvetica,sans-serif;
  --body:'Instrument Sans','Helvetica Neue',Helvetica,sans-serif;
  --wrap:none;--gutter:clamp(24px,5vw,112px);}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*{transition:none!important}}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:clamp(16px,0.55vw + 10px,19px);line-height:1.55}
img{max-width:100%;display:block}
a{color:var(--gold)}
a:hover{color:#123A5C}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
h1,h2,h3{font-family:var(--display);line-height:1.08;letter-spacing:-.015em;margin:0}
h1{font-size:clamp(38px,5vw,96px);font-weight:700}
h2{font-size:clamp(28px,3.4vw,40px);font-weight:700}
h3{font-size:20px;font-weight:600;font-family:var(--body);letter-spacing:0}
p{margin:0}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}
.muted{color:var(--muted)}
.btn{display:inline-flex;align-items:center;min-height:46px;padding:0 22px;border-radius:999px;font-weight:600;text-decoration:none;border:0;font:inherit;font-weight:600;cursor:pointer}
.btn-yellow{background:var(--yellow);color:var(--ink)}
.btn-yellow:hover{background:#DDA544;color:var(--ink)}
.btn-ghost{background:transparent;color:var(--paper);border:1px solid #5D7187}
.btn-ghost:hover{border-color:var(--paper);color:var(--paper)}
.btn-dark{background:var(--ink);color:var(--paper)}
.btn-dark:hover{background:#000;color:var(--paper)}
.site-head{background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:100px;padding-top:8px;padding-bottom:8px}
.logo{display:block;width:clamp(290px,21vw,400px)}
.logo svg{width:100%;height:auto;display:block}
.nav{display:flex;align-items:center;gap:6px}
.nav a{color:var(--ink);text-decoration:none;font-weight:500;padding:10px 14px;border-radius:999px}
.nav a:hover{background:#DDE4EA}
.nav a[aria-current="page"]{background:var(--ink);color:var(--paper)}
.nav .btn{margin-left:8px}
.menu-btn{display:none;background:none;border:1px solid var(--line);border-radius:999px;min-height:44px;padding:0 16px;font:inherit;font-weight:600;color:var(--ink);cursor:pointer}
@media (max-width:860px){.menu-btn{display:inline-flex;align-items:center}
.nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--paper);flex-direction:column;align-items:stretch;padding:12px var(--gutter) 20px;border-bottom:1px solid var(--line)}
.nav.open{display:flex}
.nav .btn{margin:8px 0 0;justify-content:center}
.logo{width:210px}}
section{padding:clamp(48px,6vw,96px) 0}
.sec-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 24px;margin-bottom:28px}
.sec-head p{max-width:560px}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px}
.white{background:var(--card);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.invite{background:var(--yellow);border-radius:8px;padding:clamp(32px,4vw,72px) clamp(24px,4vw,72px);display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px}
.invite h2{max-width:620px}
.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.tabs button{font:inherit;font-weight:500;min-height:44px;padding:0 18px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer}
.tabs button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.page-head{padding-top:clamp(40px,5vw,80px);padding-bottom:8px}
.page-head p{margin-top:12px;max-width:620px;font-size:19px}
.board{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,180px),1fr));gap:18px}
.person b{display:block;margin-top:10px}
.form{display:grid;gap:14px;max-width:560px}
.form label{font-weight:600;font-size:15px;display:block;margin-bottom:4px}
.form input,.form textarea{width:100%;font:inherit;padding:12px 14px;border:1px solid #B7C2CC;border-radius:6px;background:var(--card);color:var(--ink)}
.form textarea{min-height:130px}
.note{font-size:14px;color:var(--muted)}
.about{display:grid;gap:14px;max-width:68ch}
.facts{list-style:none;padding:0;margin:28px 0 0;display:flex;flex-wrap:wrap;gap:12px}
.facts li{background:var(--yellow);border-radius:6px;padding:14px 20px;display:flex;flex-direction:column;min-width:130px}
.facts b{font-family:var(--display);font-size:32px;line-height:1.05}
.facts span{font-size:14px}
.portal-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:6px;padding:12px 18px;margin-bottom:28px;font-size:15px}
.portal-bar .linkbtn{background:none;border:0;font:inherit;font-weight:600;color:var(--gold);cursor:pointer;padding:6px 0;text-decoration:underline}
.login-box{max-width:460px;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:clamp(24px,3vw,40px)}
.login-box select{width:100%;font:inherit;padding:12px 14px;border:1px solid #B7C2CC;border-radius:6px;background:var(--card);color:var(--ink)}
.quota{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-bottom:24px}
.quota b{font-family:var(--display);font-size:28px}
.bar{flex:1;min-width:180px;max-width:420px;height:10px;background:#D3DAE1;border-radius:999px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--ink);border-radius:999px}
.upload{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:clamp(20px,2.5vw,36px);display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr);gap:clamp(20px,3vw,40px);margin-bottom:clamp(32px,4vw,56px)}
@media (max-width:760px){.upload{grid-template-columns:1fr}}
.drop{border:2px dashed #B7C2CC;border-radius:6px;aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;text-align:center;padding:14px;color:var(--muted);font-size:15px;cursor:pointer;background:#F4F7F9;overflow:hidden;position:relative}
.drop:hover,.drop.over{border-color:var(--ink)}
.drop img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#E1E7EC}
.drop input{position:absolute;inset:0;opacity:0;cursor:pointer}
.form .check{display:flex;gap:10px;align-items:flex-start;font-size:15px;font-weight:400}
.check input{margin-top:4px;width:18px;height:18px;flex-shrink:0}
.mine{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:clamp(12px,1.2vw,22px)}
.mine-card{background:var(--card);border:1px solid var(--line);border-radius:6px;overflow:hidden;display:flex;flex-direction:column}
.mine-card .img{aspect-ratio:4/3;background:#E1E7EC;padding:8px}
.mine-card img{width:100%;height:100%;object-fit:contain}
.mine-card .t{padding:12px 14px;display:flex;flex-direction:column;gap:6px;flex:1}
.mine-card .t b{font-weight:600}
.st{align-self:flex-start;font-size:13px;font-weight:600;padding:3px 10px;border-radius:999px}
.st-ok{background:#DCEFD9;color:#1F5A23}
.st-wait{background:var(--yellow);color:var(--ink)}
.st-no{background:#F6D9D4;color:#8A2418}
.mine-card .why{font-size:14px;color:#8A2418}
.mine-card .del{margin-top:auto;align-self:flex-start;background:none;border:0;font:inherit;font-size:14px;color:var(--muted);text-decoration:underline;cursor:pointer;padding:4px 0}
.mine-card .del:hover{color:#A3261A}
.btn-line{background:var(--card);color:var(--ink);border:1px solid #B7C2CC}
.btn-line:hover{border-color:var(--ink)}
:root{--ink:#17263A; --dark:#1B2B40; --paper:#E8EDF1; --card:#F8FAFB; --line:#D3DAE1;
  --muted:#52647A; --yellow:#E9B65C; --gold:#1F5687;
  --display:'Archivo','Helvetica Neue',Helvetica,sans-serif; --body:'Archivo','Helvetica Neue',Helvetica,sans-serif;}
body{font-variation-settings:"wdth" 100}
h1,h2{font-variation-settings:"wdth" 118;font-weight:800;letter-spacing:-.02em}
h1{font-size:clamp(40px,5.6vw,104px);line-height:.98}
h2{font-size:clamp(28px,3.2vw,46px)}
h3{font-weight:700}
a:hover{color:#123A5C}
.site-head{background:rgba(232,237,241,.94);backdrop-filter:blur(8px)}
.nav a:hover{background:#DDE4EA}
.btn-dark{background:var(--ink)}
.btn-dark:hover{background:#0E1A29}
.hero3{background:var(--dark);color:#EEF2F6}
@keyframes filmrun{to{transform:translateX(-50%)}}
.hero3-text{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:28px clamp(28px,4vw,80px);padding-top:clamp(40px,5vw,84px);padding-bottom:clamp(48px,6vw,96px)}
.hero3-text h1{max-width:13ch;color:#F4F7FA}
.hero3-sub{margin-top:20px;max-width:52ch;color:#B9C6D3;font-size:clamp(17px,1.25vw,21px)}
.hero3 .btn-ghost{color:#EEF2F6;border-color:#5D7187}
.hero3 .btn-ghost:hover{border-color:#EEF2F6;color:#fff}
.white{background:var(--card)}
.invite{background:var(--dark);color:#EEF2F6;border-radius:4px}
.invite h2{color:#F4F7FA}
.invite .btn,.invite .btn-dark{background:var(--yellow);color:var(--ink)}
.invite .btn:hover{background:#DDA544;color:var(--ink)}
footer{background:#14212F}
footer{background:var(--dark);color:#D6DEE6;padding:56px 0 36px;margin-top:72px}
footer a{color:#D6DEE6}
footer a:hover{color:#fff}
.foot{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:32px}
.foot h3{color:var(--paper);font-size:17px;margin-bottom:8px}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.foot-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;border-top:1px solid #33465A;margin-top:40px;padding-top:20px;font-size:14px}
.site-head{background:rgba(232,237,241,.72);-webkit-backdrop-filter:blur(16px) saturate(160%);backdrop-filter:blur(16px) saturate(160%);border-bottom:1px solid rgba(23,38,58,.08);transition:box-shadow .3s,background .3s}
.site-head .wrap{transition:min-height .35s ease}
.logo{transition:width .35s ease}
.site-head.scrolled{background:rgba(232,237,241,.82);box-shadow:0 8px 30px rgba(23,38,58,.10)}
.site-head.scrolled .wrap{min-height:72px}
.site-head.scrolled .logo{width:clamp(220px,15vw,290px)}
.nav a{transition:background .2s,color .2s}
.btn{position:relative;overflow:hidden;isolation:isolate;transition:transform .2s ease,box-shadow .25s ease,background .25s,border-color .25s}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0) scale(.97)}
.btn-yellow{box-shadow:0 6px 18px rgba(233,182,92,.28)}
.btn-yellow:hover{box-shadow:0 10px 28px rgba(233,182,92,.45)}
.btn-yellow::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%);transform:translateX(-120%);transition:transform .7s ease}
.btn-yellow:hover::after{transform:translateX(120%)}
.btn-dark:hover{box-shadow:0 10px 26px rgba(23,38,58,.28)}
.glass,.hero3 .btn-ghost,.invite .btn-ghost{background:rgba(255,255,255,.08);-webkit-backdrop-filter:blur(12px) saturate(150%);backdrop-filter:blur(12px) saturate(150%);
  border:1px solid rgba(255,255,255,.22);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 8px 24px rgba(0,0,0,.18)}
.hero3 .btn-ghost:hover{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.45)}
.tabs button{transition:background .25s,color .25s,border-color .25s,transform .2s}
.tabs button:hover{transform:translateY(-1px)}
.hero3{position:relative;overflow:hidden}
.hero3::before{content:"";position:absolute;width:70vw;height:70vw;right:-20vw;bottom:-45vw;border-radius:50%;
  background:radial-gradient(circle,rgba(233,182,92,.30),rgba(233,182,92,0) 62%);animation:glow 18s ease-in-out infinite alternate;pointer-events:none}
.hero3::after{content:"";position:absolute;width:60vw;height:60vw;left:-25vw;bottom:-40vw;border-radius:50%;
  background:radial-gradient(circle,rgba(84,132,190,.32),rgba(84,132,190,0) 60%);animation:glow2 22s ease-in-out infinite alternate;pointer-events:none}
@keyframes glow{to{transform:translate(-14vw,-6vw) scale(1.15)}}
@keyframes glow2{to{transform:translate(12vw,-4vw) scale(1.1)}}
.hero3>*{position:relative;z-index:1}
.hero3 h1{animation:rise 1s cubic-bezier(.2,.7,.2,1) .25s both}
.hero3 .hero3-sub{animation:rise 1s cubic-bezier(.2,.7,.2,1) .45s both}
.hero3 .hero-actions{animation:rise 1s cubic-bezier(.2,.7,.2,1) .65s both}
@keyframes rise{from{opacity:0;transform:translateY(28px);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}
@keyframes fadein{from{opacity:0}to{opacity:1}}
@keyframes pagein{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.anim .rv{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.anim .rv.in{opacity:1;transform:none}
@keyframes pulse{to{box-shadow:0 0 0 14px rgba(233,182,92,0)}}
.mine-card{transition:transform .3s ease,box-shadow .3s ease}
.mine-card:hover{transform:translateY(-4px);box-shadow:0 16px 34px rgba(23,38,58,.14)}
.invite{position:relative;overflow:hidden}
.invite::before{content:"";position:absolute;width:520px;height:520px;right:-140px;top:-220px;border-radius:50%;background:radial-gradient(circle,rgba(233,182,92,.35),transparent 65%);animation:glow 16s ease-in-out infinite alternate;pointer-events:none}
.invite>*{position:relative}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}
.anim .rv{opacity:1;transform:none}}
.home-news .sec-head{margin-bottom:18px}
.news-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:clamp(16px,2vw,32px)}
.news-row a{display:flex;flex-direction:column;gap:4px;padding-top:16px;border-top:2px solid var(--ink);text-decoration:none;color:var(--ink);transition:border-color .25s}
.news-row a:hover{border-top-color:var(--yellow)}
.news-row small{font-size:14px;color:var(--muted)}
.news-row strong{font-size:19px;font-weight:600;line-height:1.3}
.news-row a:hover strong{text-decoration:underline;text-decoration-color:var(--yellow);text-decoration-thickness:3px;text-underline-offset:4px}
.invite-next{margin-top:22px!important;display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;font-size:16px;color:#C9D4DE}
.invite-next span{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:3px 12px;font-size:13px;font-weight:600;color:var(--yellow)}
.invite-next b{color:#F4F7FA;font-weight:600}
.invite-next a{color:#F4F7FA;text-decoration-color:var(--yellow);text-underline-offset:4px}
.prog-hero{position:relative;overflow:hidden;background:var(--dark);color:#EEF2F6}
.prog-hero::before{content:"";position:absolute;width:60vw;height:60vw;right:-18vw;top:-30vw;border-radius:50%;background:radial-gradient(circle,rgba(233,182,92,.28),transparent 62%);animation:glow 18s ease-in-out infinite alternate;pointer-events:none}
.prog-hero-in{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,520px);gap:clamp(28px,4vw,80px);align-items:center;padding-top:clamp(40px,5vw,84px);padding-bottom:clamp(40px,5vw,84px)}
@media (max-width:900px){.prog-hero-in{grid-template-columns:1fr}}
.prog-intro h1{color:#F4F7FA;animation:rise 1s cubic-bezier(.2,.7,.2,1) .1s both}
.prog-intro p{margin-top:18px;max-width:46ch;color:#B9C6D3;font-size:clamp(17px,1.25vw,21px);animation:rise 1s cubic-bezier(.2,.7,.2,1) .3s both}
.prog-next{position:relative;border-radius:18px;padding:clamp(22px,2.6vw,36px);background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);
  -webkit-backdrop-filter:blur(16px) saturate(140%);backdrop-filter:blur(16px) saturate(140%);box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 30px 80px rgba(0,0,0,.28);
  animation:rise 1s cubic-bezier(.2,.7,.2,1) .45s both}
.pn-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}
.pn-label{font-size:13px;font-weight:700;color:var(--ink);background:var(--yellow);padding:4px 12px;border-radius:999px}
.pn-count{font-size:15px;color:#C9D4DE}
.pn-date{display:flex;align-items:flex-end;gap:14px;line-height:.9}
.pn-day{font-variation-settings:"wdth" 125;font-weight:800;font-size:clamp(72px,7vw,120px);color:#F6F8FA;letter-spacing:-.03em}
.pn-month{font-size:clamp(20px,1.6vw,26px);font-weight:700;color:#F4F7FA;padding-bottom:10px;line-height:1.15}
.pn-month small{font-size:15px;font-weight:500;color:#A9B8C7}
.pn-title{margin-top:18px!important;color:#F6F8FA;font-size:clamp(24px,2.2vw,34px)}
.pn-meta{margin-top:12px;display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;color:#C9D4DE;font-size:15px}
.pn-meta .typ-ico{width:20px;height:20px;stroke:var(--yellow)}
.pn-guest{margin-top:12px;display:inline-block;font-size:13px;font-weight:600;color:var(--yellow);border:1px solid rgba(233,182,92,.5);padding:3px 12px;border-radius:999px}
.prog-next .btn{margin-top:22px}
.prog-next-empty{color:#C9D4DE}
.typ-ico{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.prog-list-sec{padding-top:clamp(40px,5vw,72px)}
.prog-tools{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 24px;margin-bottom:clamp(24px,3vw,40px)}
.prog-filter{margin:0}
.pl-month{display:grid;grid-template-columns:minmax(120px,220px) minmax(0,1fr);gap:clamp(16px,3vw,48px);padding:clamp(20px,2.4vw,32px) 0;border-top:1px solid var(--line)}
.pl-month h3{font-variation-settings:"wdth" 118;font-size:clamp(22px,2vw,30px);font-weight:800;position:sticky;top:120px;align-self:start}
@media (max-width:700px){.pl-month{grid-template-columns:1fr}
.pl-month h3{position:static}}
.pl-items{display:grid;gap:12px}
.pl-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:clamp(14px,2vw,28px);align-items:center;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px clamp(16px,2vw,24px);transition:transform .3s,box-shadow .3s,border-color .3s}
.pl-item:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(23,38,58,.12);border-color:#B7C2CC}
.pl-item.is-next{border-color:var(--yellow);box-shadow:0 0 0 1px var(--yellow)}
.pl-date{display:flex;flex-direction:column;align-items:center;justify-content:center;width:68px;height:68px;border-radius:12px;background:var(--dark);color:#F4F7FA;line-height:1}
.pl-date b{font-variation-settings:"wdth" 118;font-size:28px;font-weight:800}
.pl-date span{font-size:13px;color:#A9B8C7;margin-top:4px}
.pl-item.is-next .pl-date{background:var(--yellow);color:var(--ink)}
.pl-item.is-next .pl-date span{color:var(--ink)}
.pl-typ{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:14px;color:var(--muted)}
.pl-typ em{font-style:normal;font-weight:600;color:#8A5A00;background:rgba(233,182,92,.22);padding:1px 9px;border-radius:999px;margin-left:4px}
.pl-body h4{font-size:clamp(18px,1.4vw,21px);margin:4px 0 0}
.pl-meta{margin-top:4px;display:flex;flex-wrap:wrap;gap:4px 14px;font-size:15px;color:var(--muted)}
.pl-ics{width:46px;height:46px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;display:grid;place-items:center;transition:background .2s,border-color .2s,transform .2s}
.pl-ics svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}
.pl-ics:hover{background:var(--yellow);border-color:var(--yellow);transform:translateY(-2px)}
.prog-past{margin-top:clamp(24px,3vw,40px);border-top:1px solid var(--line);padding-top:18px}
.prog-past summary{cursor:pointer;font-weight:600;color:var(--muted);list-style:none;display:inline-flex;align-items:center;gap:8px}
.prog-past summary::before{content:"+";display:grid;place-items:center;width:24px;height:24px;border-radius:50%;border:1px solid var(--line);font-weight:700}
.prog-past[open] summary::before{content:"–"}
.prog-past-list{margin-top:12px;display:grid;gap:6px;color:var(--muted)}
.prog-past-list b{color:var(--ink);font-weight:600;margin-right:8px}
@media (max-width:520px){.pl-item{grid-template-columns:auto minmax(0,1fr)}
.pl-ics{grid-column:2;justify-self:start;width:auto;padding:0 14px;height:40px}}
@keyframes jgin{to{opacity:1;transform:none}}

/* ===== 2. Bausteine ===== */
/* Fototeam Brig – Bausteine. Farben kommen aus dem Theme über --ftb-Variablen. */
:root {
	--ftb-ink: #17263a;
	--ftb-dark: #1b2b40;
	--ftb-deep: #0f1a27;
	--ftb-bg: #e8edf1;
	--ftb-card: #f8fafb;
	--ftb-line: #d3dae1;
	--ftb-muted: #52647a;
	--ftb-accent: #e9b65c;
	--ftb-link: #1f5687;
	--ftb-display: inherit;
	--ftb-ease: cubic-bezier(.2, .7, .2, 1);
}
.ftb-noscroll { overflow: hidden; }
.ftb-leer { color: var(--ftb-muted); }
.ftb-note { color: var(--ftb-muted); font-size: .9em; }
.ftb-msg { padding: 12px 16px; border-radius: 8px; font-weight: 600; margin: 0 0 20px; }
.ftb-msg-ok { background: #dcefd9; color: #1f5a23; }
.ftb-msg-fehler { background: #f6d9d4; color: #8a2418; }

/* Knöpfe */
.ftb-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 0 22px; border-radius: 999px; border: 0; font: inherit; font-weight: 600; cursor: pointer; text-decoration: none; transition: transform .2s, box-shadow .25s, background .25s; }
.ftb-btn:hover { transform: translateY(-2px); }
.ftb-btn:active { transform: scale(.97); }
.ftb-btn:disabled { opacity: .45; cursor: not-allowed; transform: none; }
.ftb-btn-dark { background: var(--ftb-ink); color: #fff; }
.ftb-btn-dark:hover { box-shadow: 0 10px 26px rgba(23, 38, 58, .28); }
.ftb-btn-line { background: transparent; color: var(--ftb-ink); border: 1px solid #b7c2cc; }

/* ---------- Filmstreifen ---------- */
.ftb-film { position: relative; background: var(--ftb-deep); padding: 46px 0; overflow: hidden; }
.ftb-film::before, .ftb-film::after { content: ""; position: absolute; left: 0; right: 0; height: 11px; background: repeating-linear-gradient(90deg, transparent 0 9px, rgba(232, 237, 241, .82) 9px 21px, transparent 21px 30px); }
.ftb-film::before { top: 10px; } .ftb-film::after { bottom: 10px; }
.ftb-film-leer { color: #b9c6d3; text-align: center; }
.ftb-film-track { display: flex; width: max-content; }
.ftb-film-track.is-running { animation: ftb-film 90s linear infinite; }
.ftb-film:hover .ftb-film-track, .ftb-film:focus-within .ftb-film-track { animation-play-state: paused; }
@keyframes ftb-film { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .ftb-film { overflow-x: auto; } }
.ftb-frame { position: relative; flex: 0 0 auto; margin: 0 7px; padding: 0; border: 0; background: #000; cursor: zoom-in; line-height: 0; }
.ftb-frame img { height: clamp(190px, 34vh, 400px); width: auto; max-width: none; display: block; transition: opacity .25s, transform .4s; }
.ftb-frame:hover img { transform: scale(1.02); }
.ftb-fnum { position: absolute; left: 4px; bottom: -19px; font-size: 11px; line-height: 1; font-weight: 700; color: var(--ftb-accent); letter-spacing: .08em; }
.ftb-fcap { position: absolute; right: 4px; bottom: -19px; font-size: 11px; line-height: 1; color: #93a3b4; white-space: nowrap; max-width: 90%; overflow: hidden; text-overflow: ellipsis; }

/* ---------- Zeitleiste ---------- */
.ftb-timeline { position: relative; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); margin-top: 8px; }
.ftb-timeline::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px; background: var(--ftb-ink); transform-origin: left; }
.ftb-tl-item { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 28px 24px 8px 0; text-decoration: none; color: var(--ftb-ink); }
.ftb-tl-dot { position: absolute; top: -6px; left: 0; width: 14px; height: 14px; border-radius: 50%; background: var(--ftb-bg); border: 2px solid var(--ftb-ink); }
.ftb-tl-item.is-next .ftb-tl-dot { background: var(--ftb-accent); width: 18px; height: 18px; top: -8px; animation: ftb-pulse 2.4s ease-out 2s infinite; }
@keyframes ftb-pulse { from { box-shadow: 0 0 0 0 rgba(233, 182, 92, .6); } to { box-shadow: 0 0 0 14px rgba(233, 182, 92, 0); } }
.ftb-tl-date { font-size: 15px; color: var(--ftb-muted); }
.ftb-tl-date b { font-family: var(--ftb-display); font-stretch: 118%; font-size: clamp(34px, 3vw, 52px); font-weight: 800; color: var(--ftb-ink); line-height: 1; margin-right: 4px; }
.ftb-tl-title { font-size: 19px; font-weight: 600; max-width: 24ch; }
.ftb-tl-item:hover .ftb-tl-title { text-decoration: underline; text-decoration-color: var(--ftb-accent); text-decoration-thickness: 3px; text-underline-offset: 4px; }
.ftb-tl-badge { align-self: flex-start; margin-top: 4px; background: var(--ftb-accent); color: var(--ftb-ink); font-size: 13px; font-weight: 700; padding: 3px 10px; border-radius: 999px; }
@media (max-width: 600px) {
	.ftb-timeline { padding-left: 24px; }
	.ftb-timeline::before { top: 0; bottom: 0; left: 0; right: auto; width: 2px; height: auto; transform-origin: top; }
	.ftb-tl-item { padding: 4px 0 26px; }
	.ftb-tl-dot { left: -30px; top: 12px; }
	.ftb-tl-item.is-next .ftb-tl-dot { left: -32px; top: 10px; }
}

/* ---------- Programm ---------- */
.ftb-month { margin-top: 36px; }
.ftb-month h3 { font-family: var(--ftb-display); font-stretch: 118%; font-size: 26px; margin: 0 0 12px; }
.ftb-event { display: grid; grid-template-columns: 110px 1fr; gap: 20px; align-items: start; background: var(--ftb-card); border: 1px solid var(--ftb-line); border-radius: 6px; padding: 18px 22px; margin-bottom: 10px; transition: transform .3s, box-shadow .3s; }
.ftb-event:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(23, 38, 58, .12); }
.ftb-event-d { font-family: var(--ftb-display); font-stretch: 118%; font-size: 36px; font-weight: 800; line-height: 1; color: var(--ftb-ink); }
.ftb-event-d small { display: block; font-size: 14px; font-weight: 500; font-stretch: 100%; color: var(--ftb-muted); margin-top: 4px; }
.ftb-event-t h4 { margin: 0; font-size: 19px; }
.ftb-event-info { margin: 4px 0 0; color: var(--ftb-muted); }
.ftb-event-text { margin: 8px 0 0; }
@media (max-width: 600px) { .ftb-event { grid-template-columns: 64px 1fr; } }

/* ---------- Bildraster (Originalformat, nie beschnitten) ---------- */
.ftb-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }
.ftb-chips button { font: inherit; font-weight: 500; min-height: 42px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--ftb-line); background: var(--ftb-card); color: var(--ftb-ink); cursor: pointer; transition: background .25s, color .25s, transform .2s; }
.ftb-chips button:hover { transform: translateY(-1px); }
.ftb-chips button[aria-pressed="true"] { background: var(--ftb-ink); border-color: var(--ftb-ink); color: #fff; }
.ftb-raster { column-width: clamp(240px, 17vw, 420px); column-gap: clamp(12px, 1.2vw, 24px); }
.ftb-tile { display: block; width: 100%; break-inside: avoid; margin: 0 0 clamp(18px, 1.6vw, 30px); padding: 0; border: 0; background: none; text-align: left; font: inherit; color: inherit; cursor: zoom-in; }
.ftb-tile[hidden] { display: none; }
.ftb-tile-img { display: block; border-radius: 3px; overflow: hidden; background: #e1e7ec; transition: transform .35s, box-shadow .35s; }
.ftb-tile-img img { width: 100%; height: auto; display: block; }
.ftb-tile:hover .ftb-tile-img { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(23, 38, 58, .22); }
.ftb-tile-cap { display: block; margin-top: 9px; font-size: 15px; line-height: 1.35; }
.ftb-tile-cap b { display: block; font-weight: 600; }
.ftb-tile-cap span { color: var(--ftb-muted); }

/* ---------- Karten für Alben und Mitglieder ---------- */
.ftb-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, clamp(200px, 15vw, 320px)), 1fr)); gap: clamp(12px, 1.2vw, 24px); }
.ftb-card { display: flex; flex-direction: column; padding: 0; border: 1px solid var(--ftb-line); border-radius: 6px; overflow: hidden; background: var(--ftb-card); text-align: left; font: inherit; color: inherit; cursor: pointer; transition: transform .3s, box-shadow .3s; }
.ftb-card:hover { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(23, 38, 58, .14); }
.ftb-card-img { display: block; aspect-ratio: 4 / 3; background: #e1e7ec; padding: 10px; }
.ftb-card-img img { width: 100%; height: 100%; object-fit: contain; display: block; transition: transform .6s; }
.ftb-card:hover .ftb-card-img img { transform: scale(1.03); }
.ftb-card-t { display: flex; flex-direction: column; padding: 12px 14px; }
.ftb-card-t b { font-weight: 600; }
.ftb-card-t span { font-size: 14px; color: var(--ftb-muted); }

/* ---------- Galerie-Pop-up ---------- */
.ftb-pop { position: fixed; inset: 0; z-index: 900; display: none; overflow-y: auto; padding: clamp(10px, 3vw, 48px); background: rgba(10, 18, 28, .62); -webkit-backdrop-filter: blur(14px) saturate(120%); backdrop-filter: blur(14px) saturate(120%); }
.ftb-pop.is-open { display: block; animation: ftb-fade .3s ease both; }
.ftb-pop-box { position: relative; overflow: hidden; max-width: 1560px; margin: 0 auto; border-radius: 18px; color: #eef2f6; background: linear-gradient(160deg, #20334b 0%, #16263a 55%, #111e2e 100%); border: 1px solid rgba(255, 255, 255, .08); box-shadow: 0 40px 120px rgba(0, 0, 0, .45); padding: clamp(20px, 3vw, 48px); animation: ftb-rise .45s var(--ftb-ease) both; }
.ftb-pop-box::before { content: ""; position: absolute; width: 560px; height: 560px; right: -180px; top: -300px; border-radius: 50%; background: radial-gradient(circle, rgba(233, 182, 92, .22), transparent 65%); pointer-events: none; }
.ftb-pop-box > * { position: relative; }
.ftb-pop-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: clamp(22px, 2.4vw, 36px); }
.ftb-pop-head h2 { margin: 0; color: #f6f8fa; font-family: var(--ftb-display); font-stretch: 118%; font-weight: 800; font-size: clamp(28px, 3.4vw, 52px); line-height: 1; letter-spacing: -.02em; }
.ftb-pop-sub { margin: 6px 0 0; color: #a9b8c7; }
.ftb-pop-x, .ftb-lb button { flex-shrink: 0; width: 48px; height: 48px; border-radius: 999px; font-size: 26px; line-height: 1; cursor: pointer; color: #f1f4f7; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .2); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15); transition: transform .2s, background .2s; }
.ftb-pop-x:hover, .ftb-lb button:hover { transform: scale(1.08); background: rgba(255, 255, 255, .18); }
.ftb-jg { display: flex; flex-wrap: wrap; gap: clamp(8px, .8vw, 14px); }
.ftb-jg::after { content: ""; flex: 999 1 0; }
.ftb-jg-item { --r: 1.5; position: relative; flex: var(--r) 1 calc(var(--r) * clamp(150px, 17vw, 300px)); aspect-ratio: var(--r); padding: 0; border: 0; border-radius: 6px; overflow: hidden; cursor: zoom-in; background: #0d1724; opacity: 0; animation: ftb-rise .6s var(--ftb-ease) forwards; }
.ftb-jg-item img { width: 100%; height: 100%; display: block; transition: filter .35s; }
.ftb-jg-item::after { content: ""; position: absolute; inset: 0; border-radius: 6px; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08); transition: box-shadow .3s; pointer-events: none; }
.ftb-jg-item:hover::after, .ftb-jg-item:focus-visible::after { box-shadow: inset 0 0 0 2px var(--ftb-accent); }
.ftb-jg-item:hover img { filter: brightness(1.06); }
.ftb-jg-cap { position: absolute; left: 10px; right: 10px; bottom: 10px; display: flex; flex-direction: column; align-items: flex-start; gap: 1px; text-align: left; padding: 9px 13px; border-radius: 10px; color: #f4f7fa; background: rgba(14, 24, 37, .55); -webkit-backdrop-filter: blur(12px) saturate(140%); backdrop-filter: blur(12px) saturate(140%); border: 1px solid rgba(255, 255, 255, .14); opacity: 0; transform: translateY(8px); transition: opacity .3s, transform .3s; }
.ftb-jg-cap b { font-size: 15px; line-height: 1.25; }
.ftb-jg-cap span { font-size: 13px; color: #c4d0dc; }
.ftb-jg-item:hover .ftb-jg-cap, .ftb-jg-item:focus-visible .ftb-jg-cap { opacity: 1; transform: none; }
@media (hover: none) { .ftb-jg-cap { opacity: 1; transform: none; left: 6px; right: 6px; bottom: 6px; padding: 6px 10px; } .ftb-jg-cap b { font-size: 13px; } .ftb-jg-cap span { display: none; } }
@media (max-width: 600px) { .ftb-jg-item { flex-basis: calc(var(--r) * 120px); } }

/* ---------- Grossansicht ---------- */
.ftb-lb { position: fixed; inset: 0; z-index: 950; display: none; align-items: center; justify-content: center; padding: 56px 72px; background: rgba(14, 22, 32, .94); }
.ftb-lb.is-open { display: flex; animation: ftb-fade .25s ease both; }
.ftb-lb figure { margin: 0; max-width: 100%; max-height: 100%; display: flex; flex-direction: column; align-items: center; }
.ftb-lb img { max-height: calc(100vh - 160px); max-width: 100%; width: auto; height: auto; object-fit: contain; border-radius: 3px; }
.ftb-lb figcaption { color: #f3f6f9; margin-top: 14px; text-align: center; display: flex; flex-direction: column; }
.ftb-lb figcaption span { color: #a9b8c7; }
.ftb-lb button { position: absolute; }
.ftb-lb-x { top: 14px; right: 14px; } .ftb-lb-prev { left: 14px; top: 50%; } .ftb-lb-next { right: 14px; top: 50%; }
@media (max-width: 600px) { .ftb-lb { padding: 64px 12px; } .ftb-lb-prev, .ftb-lb-next { top: auto !important; bottom: 14px; } }

@keyframes ftb-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes ftb-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }

/* ---------- Formulare ---------- */
.ftb-form p { margin: 0 0 14px; }
.ftb-form label, .ftb-login label { display: block; font-weight: 600; font-size: 15px; margin-bottom: 4px; }
.ftb-form input:not([type=checkbox]):not([type=file]), .ftb-form textarea, .ftb-login input[type=text], .ftb-login input[type=password], .ftb-q-reject input { width: 100%; box-sizing: border-box; font: inherit; padding: 12px 14px; border: 1px solid #b7c2cc; border-radius: 8px; background: #fff; color: var(--ftb-ink); }
.ftb-form input:focus, .ftb-form textarea:focus, .ftb-login input:focus { outline: 2px solid var(--ftb-link); outline-offset: 1px; }
.ftb-check { display: flex; gap: 10px; align-items: flex-start; }
.ftb-check input { margin-top: 4px; width: 18px; height: 18px; flex-shrink: 0; }
.ftb-check label { font-weight: 400; }
.ftb-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ftb-kontakt { max-width: 560px; }
.ftb-login { max-width: 460px; background: var(--ftb-card); border: 1px solid var(--ftb-line); border-radius: 12px; padding: clamp(22px, 3vw, 40px); }
.ftb-login .login-remember label { font-weight: 400; display: flex; gap: 8px; align-items: center; }
.ftb-login .button-primary { min-height: 46px; padding: 0 26px; border-radius: 999px; border: 0; background: var(--ftb-ink); color: #fff; font: inherit; font-weight: 600; cursor: pointer; }

/* ---------- Mitgliederbereich ---------- */
.ftb-portal-bar { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; background: var(--ftb-card); border: 1px solid var(--ftb-line); border-radius: 10px; padding: 12px 18px; margin-bottom: 28px; font-size: 15px; }
.ftb-quota { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin-bottom: 24px; }
.ftb-quota b { font-family: var(--ftb-display); font-stretch: 118%; font-size: 28px; }
.ftb-bar { flex: 1; min-width: 180px; max-width: 420px; height: 10px; background: var(--ftb-line); border-radius: 999px; overflow: hidden; }
.ftb-bar i { display: block; height: 100%; background: var(--ftb-ink); border-radius: 999px; transition: width .8s var(--ftb-ease); }
.ftb-upload { background: var(--ftb-card); border: 1px solid var(--ftb-line); border-radius: 12px; padding: clamp(20px, 2.5vw, 36px); display: grid; grid-template-columns: minmax(0, 260px) minmax(0, 1fr); gap: clamp(20px, 3vw, 40px); margin-bottom: clamp(32px, 4vw, 56px); }
.ftb-upload h3 { margin: 0 0 14px; }
@media (max-width: 760px) { .ftb-upload { grid-template-columns: 1fr; } }
.ftb-drop { position: relative; display: flex; align-items: center; justify-content: center; aspect-ratio: 4 / 3; border: 2px dashed #b7c2cc; border-radius: 8px; text-align: center; padding: 14px; color: var(--ftb-muted); font-weight: 400 !important; cursor: pointer; background: #f4f7f9; overflow: hidden; transition: border-color .2s; }
.ftb-drop:hover, .ftb-drop.is-over { border-color: var(--ftb-ink); }
.ftb-drop img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; background: #e1e7ec; }
.ftb-drop input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.ftb-mine-h { margin: 0 0 18px; }
.ftb-mine { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: clamp(12px, 1.2vw, 22px); }
.ftb-mine-card { display: flex; flex-direction: column; background: var(--ftb-card); border: 1px solid var(--ftb-line); border-radius: 8px; overflow: hidden; transition: transform .3s, box-shadow .3s; }
.ftb-mine-card:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(23, 38, 58, .12); }
.ftb-mine-img { aspect-ratio: 4 / 3; background: #e1e7ec; padding: 8px; border: 0; cursor: zoom-in; }
.ftb-mine-img img { width: 100%; height: 100%; object-fit: contain; display: block; }
.ftb-mine-t { display: flex; flex-direction: column; gap: 6px; padding: 12px 14px; flex: 1; }
.ftb-st { align-self: flex-start; font-size: 13px; font-weight: 600; padding: 3px 10px; border-radius: 999px; }
.ftb-st-ok { background: #dcefd9; color: #1f5a23; } .ftb-st-wait { background: var(--ftb-accent); color: var(--ftb-ink); } .ftb-st-no { background: #f6d9d4; color: #8a2418; }
.ftb-why { font-size: 14px; color: #8a2418; }
.ftb-del { margin-top: auto; background: none; border: 0; font: inherit; font-size: 14px; color: var(--ftb-muted); text-decoration: underline; cursor: pointer; padding: 4px 0; }
.ftb-del:hover { color: #a3261a; }

/* ---------- Freigabe ---------- */
.ftb-queue { display: grid; gap: 16px; }
.ftb-q-item { display: grid; grid-template-columns: minmax(0, 320px) minmax(0, 1fr); gap: 24px; align-items: start; background: var(--ftb-card); border: 1px solid var(--ftb-line); border-radius: 10px; padding: 16px; }
@media (max-width: 700px) { .ftb-q-item { grid-template-columns: 1fr; } }
.ftb-q-img { aspect-ratio: 4 / 3; width: 100%; background: #e1e7ec; border: 0; border-radius: 6px; padding: 8px; cursor: zoom-in; }
.ftb-q-img img { width: 100%; height: 100%; object-fit: contain; display: block; }
.ftb-q-item h4 { margin: 0 0 4px; font-size: 22px; }
.ftb-q-actions { display: flex; flex-wrap: wrap; gap: 14px; align-items: flex-end; margin-top: 16px; }
.ftb-q-reject { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-end; flex: 1; min-width: 260px; }
.ftb-q-reject label { width: 100%; font-size: 14px; color: var(--ftb-muted); }
.ftb-q-reject input { flex: 1; min-width: 180px; }

@media (prefers-reduced-motion: reduce) {
	.ftb-film-track, .ftb-jg-item, .ftb-pop.is-open, .ftb-pop-box, .ftb-lb.is-open, .ftb-tl-item.is-next .ftb-tl-dot { animation: none !important; opacity: 1; }
	.ftb-tile-img, .ftb-card, .ftb-event, .ftb-btn, .ftb-mine-card { transition: none !important; }
}


/* ===== 3. Ergänzungen CMS ===== */
.logo img{width:100%;height:auto;display:block}
.skip{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--ink);color:#fff;padding:10px 16px;border-radius:8px}
.skip:focus{left:12px}
.hero3 .ftb-film{animation:fadein 1.2s ease both}
.hero3 .ftb-frame img{height:clamp(190px,34vh,400px)}
.ftb-section{padding:clamp(48px,6vw,96px) 0}
.page-head+.page-body>.ftb-section:first-child,.jumpnav+.page-body>.ftb-section:first-child{padding-top:clamp(24px,3vw,40px)}
.sec-tight{padding:clamp(16px,2vw,28px) 0}
.sec-link{font-weight:600;text-decoration:none;color:var(--gold)}
.sec-link:hover{text-decoration:underline}
h2.h3,.h3{font-size:clamp(20px,1.6vw,24px);font-variation-settings:"wdth" 110;font-weight:800;letter-spacing:-.01em}
.prose{max-width:68ch;display:grid;gap:14px}
.prose h2{font-size:clamp(24px,2.2vw,32px);margin-top:14px}
.prose h3{margin-top:10px}
.prose ul,.prose ol{margin:0;padding-left:1.3em;display:grid;gap:4px}
.prose a{color:var(--gold)}
.single-img{margin:0;max-width:1100px}
.single-img-btn{display:block;padding:0;border:0;background:none;cursor:zoom-in}
.single-img img{width:auto;max-width:100%;height:auto;max-height:80vh;border-radius:3px}
.single-img figcaption{margin-top:10px;color:var(--muted);font-size:15px}
.person-img{aspect-ratio:1/1;border-radius:6px;overflow:hidden;background:#D9E0E6;display:grid;place-items:center}
.person-img img{width:100%;height:100%;object-fit:contain}
.person-ph{width:42%;aspect-ratio:1;border-radius:50%;background:#C3CDD6}
.person b{display:block;margin-top:10px}
.person .muted{font-size:15px}
.facts li{color:var(--ink)}
.ftb-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.ftb-form{display:grid;gap:14px;max-width:560px}
.ftb-form p{margin:0}
.ftb-form label{font-weight:600;font-size:15px;display:block;margin-bottom:4px}
.ftb-form input:not([type=checkbox]):not([type=file]),.ftb-form textarea,.ftb-form select{width:100%;font:inherit;padding:12px 14px;border:1px solid #B7C2CC;border-radius:6px;background:var(--card);color:var(--ink)}
.ftb-form input:focus,.ftb-form textarea:focus,.ftb-form select:focus{outline:2px solid var(--gold);outline-offset:1px;border-color:var(--gold)}
.ftb-form .check{display:flex;gap:10px;align-items:flex-start}
.ftb-form .check label{font-weight:400}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}
.login-box{margin:0}
.login-links{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:15px}
.inline{display:inline}
.linkbtn{background:none;border:0;font:inherit;font-weight:600;color:var(--gold);cursor:pointer;padding:6px 0;text-decoration:underline}
.portal-links{display:flex;gap:18px;align-items:center}
.mine-h{margin:0 0 16px}
.mine-img{display:block;width:100%;aspect-ratio:4/3;background:#E1E7EC;padding:8px;border:0;cursor:zoom-in}
.mine-img img{width:100%;height:100%;object-fit:contain}
.mine-t{padding:12px 14px;display:flex;flex-direction:column;gap:6px;flex:1}
.mine-t b{font-weight:600}
.mine-t form{margin-top:auto}
.why{font-size:14px;color:#8A2418}
.del{background:none;border:0;font:inherit;font-size:14px;color:var(--muted);text-decoration:underline;cursor:pointer;padding:4px 0}
.del:hover{color:#A3261A}
.drop.over{border-color:var(--ink)}
.drop-text{position:relative}
.upinfo:empty{display:none}
.editbar{position:fixed;right:16px;bottom:16px;z-index:30;display:flex;gap:6px;padding:6px;border-radius:999px;background:rgba(23,38,58,.88);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 10px 30px rgba(0,0,0,.25)}
.editbar a{color:#fff;text-decoration:none;font-size:14px;font-weight:600;padding:8px 14px;border-radius:999px}
.editbar a:hover{background:rgba(255,255,255,.14);color:#fff}
.editbar a:last-child{background:var(--yellow);color:var(--ink)}
.draft-note{margin-top:16px!important;background:rgba(233,182,92,.25);border:1px solid var(--yellow);border-radius:8px;padding:10px 16px;font-size:15px}
.jumpnav{position:sticky;top:72px;z-index:10;background:rgba(232,237,241,.9);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);margin-top:24px}
.jumpnav .wrap{display:flex;gap:6px;overflow-x:auto;padding-top:8px;padding-bottom:8px}
.jumpnav a{flex-shrink:0;text-decoration:none;color:var(--ink);font-weight:500;font-size:15px;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--card)}
.jumpnav a:hover{border-color:var(--ink)}
[id]{scroll-margin-top:150px}
.post-list{display:grid;gap:0;max-width:820px}
.post-list a{display:block;padding:18px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.post-list small{display:block;color:var(--muted);font-size:14px}
.post-list strong{font-size:20px}
.post-list a:hover strong{text-decoration:underline;text-decoration-color:var(--yellow);text-decoration-thickness:3px}
.post-meta{color:var(--muted);margin-top:10px}
.msg-page{min-height:40vh}
.ftb-msg{max-width:720px}
.foot-links{display:flex;flex-wrap:wrap;gap:18px}
@media (max-width:860px){.jumpnav{top:64px}}
.ftb-card-img,.mine-img,.person-img{overflow:hidden;min-height:0}
.page-body>.ftb-section:not(.white)+.ftb-section:not(.white){padding-top:clamp(8px,1.5vw,24px)}
.page-body>.ftb-section.sec-tight+.ftb-section{padding-top:clamp(24px,3vw,48px)}
.pn-text{margin-top:12px;color:#C9D4DE;font-size:16px;max-width:52ch}
.pl-text{margin-top:6px;font-size:15px;color:var(--ink);max-width:70ch}
.prog-sub-link{margin-top:26px!important;animation:rise 1s cubic-bezier(.2,.7,.2,1) .45s both}
.prog-abo{margin-top:clamp(36px,4vw,64px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(20px,3vw,48px);align-items:center;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:clamp(22px,3vw,40px)}
@media (max-width:860px){.prog-abo{grid-template-columns:1fr}}
.prog-abo h2{font-size:clamp(24px,2.2vw,32px)}
.prog-abo-t p{margin-top:10px;color:var(--muted);max-width:52ch}
.prog-abo-a{display:flex;flex-wrap:wrap;gap:10px}
.prog-abo-copy{flex-basis:100%;margin-top:8px!important;font-size:14px;color:var(--muted)}
.prog-abo-copy span{display:flex;gap:8px;margin-top:6px}
.prog-abo-copy input{flex:1;min-width:0;font:inherit;font-size:14px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink)}
.prog-abo-copy .btn{min-height:42px;padding:0 16px}
