@font-face{
  font-family:'Brose';
  font-style:normal;
  font-weight:300;
  src:url('https://daten.fabianbrose.de/typo/Brose.woff2') format('woff2'),
      url('https://daten.fabianbrose.de/typo/Brose.woff') format('woff');
  font-display:swap;
}

:root{
  --bg:#f9fafb;
  --fg:#111111;
  --accent:#29b8c2;
  --muted:#666666;
  --line:#e5e7eb;
  --radius:8px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:Brose;
  color:var(--fg);
  background:var(--bg);
  font-size:14px;
  letter-spacing: 0.5px;
  line-height:22px;
}

a{
  color:var(--accent);
  text-decoration:underline;
}
a:hover{opacity:.85}
a:focus{outline:2px dashed var(--accent);outline-offset:2px}

header{
  position:relative;
  padding:40px 20px 30px 20px;
  margin-bottom: 20px;
  background:linear-gradient(110deg,#367d99 0%,#2fc6ce 50%,#225bb0 100%);
  background-size:200% 200%;
  animation:headerGradient 14s ease-in-out infinite;
  clip-path:polygon(0 0,100% 0,100% 72%,0 100%);
}

@keyframes headerGradient{
  0%{background-position:0% 50%}
  50%{background-position:100% 50%}
  100%{background-position:0% 50%}
}

@media (max-width:600px){
  header{clip-path:polygon(0 0,100% 0,100% 88%,0 100%)}
}

@media (prefers-reduced-motion:reduce){
  header{animation:none}
}

footer{
  padding:10px 20px;
  border-bottom:0;
  text-align:center;
}
footer .btn{
  display:inline-block;
  background:var(--accent);
  color:#fff;
  text-decoration:none;
  padding:10px 16px;
  margin-top:7px;
  border-radius:var(--radius);
}
footer .btn:hover{opacity:.9}

h1{
  margin:0;
  font-size:53px;
  font-weight:300;
  text-align: center;
  padding:4px 10px;
  line-height:1.3;
}
h2{
  margin:0;
  font-size:30px;
  font-weight:300;
  line-height:1.3;
}

main{padding:0px 10px 10px 10px;max-width:820px;margin:0 auto}

button{
  padding:10px 14px;
  border:0;
  border-radius:var(--radius);
  background:var(--fg);
  color:#fff;
  cursor:pointer;
}
button.secondary{
  background:#eee;
  color:var(--fg);
}

input[type=text],input[type=number]{
  flex:1;
  padding:10px;
  border:1px solid #ccc;
  border-radius:var(--radius);
  background:#fff;
  color:var(--fg);
}

form.search{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:14px;
}
form.search input[type=text]{
  flex:1 1 320px;
  min-width:0;
}
form.search button{flex:0 0 auto}

ul.list{
  list-style:none;
  padding:0;
  margin:0;
}
ul.list li{
  padding:10px 0;
  border-bottom:1px solid var(--line);
  display:flex;
  gap:14px;
}
.num{
  min-width:32px;
  font-variant-numeric:tabular-nums;
}
.title{flex:1}
.meta{color:var(--muted);font-size:12px;margin-top:6px}

details{
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:8px;
  margin:5px 0;
  background:#fff;
}
details>summary{
  display:flex;
  align-items:center;
  gap:14px;
  list-style:none;
  cursor:pointer;
}
details>summary::-webkit-details-marker{display:none}
details>summary::after{
  content:"";
  margin-left:auto;
  width:8px;
  height:8px;
  border:2px solid currentColor;
  border-left:0;
  border-top:0;
  transform:rotate(-45deg);
  transition:transform .2s ease;
}
details[open]>summary::after{transform:rotate(45deg)}
details .list{margin-top:8px}
details .list li{margin-left:24px}


.link{
  background:none;
  border:0;
  padding:0;
  text-decoration:underline;
  color:var(--accent);
  cursor:pointer;
}
.link:hover{opacity:.85}
.link-danger{color:#b00020}
.leaf{
  display:flex;
  gap:14px;
  padding:10px 0;
  border-bottom:1px solid var(--line);
  cursor:default;
}
details .list .leaf{margin-left:24px}

@media (max-width: 600px) {
  h1{
  font-size:30px;
  }
  h2{
  font-size:20px;
}
}


.trick-gallery{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin:18px 0 26px 0;
}
.trick-gallery img{
  width:100%;
  height:auto;
  display:block;
  border-radius:var(--radius);
  border:1px solid var(--line);
  background:#fff;
}
@media (max-width:900px){
  .trick-gallery{grid-template-columns:1fr}
}
