
/*
Theme Name: Schellenberger Portal
Theme URI: https://kuemmerbuero.de
Author: Schellenberger Portal
Description: Persönliches Portal mit Bildkreisen und einheitlichen Themenseiten.
Version: 1.5.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: schellenberger-portal
*/
:root{--navy:#093c60;--ink:#173d58;--soft:#edf5f7}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Arial,sans-serif;background:#f5f8fa;color:var(--ink)}a{color:var(--navy)}a:focus-visible{outline:3px solid #e3a23a;outline-offset:4px}.site-head{display:none}.portal-scene{min-height:960px;position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 54% 45%,rgba(100,165,185,.42),transparent 55%),radial-gradient(ellipse at 98% 65%,rgba(243,202,142,.48),transparent 48%),linear-gradient(118deg,#f7fbfc 0%,#c6e3f1 34%,#a7c7d6 57%,#f7edda 100%)}.portal-scene:before{content:"";position:absolute;inset:21% -10% 0;background:linear-gradient(155deg,transparent 30%,rgba(75,133,148,.09) 31%,rgba(255,255,255,.2) 70%,transparent 71%);border-radius:50%;transform:rotate(-9deg);z-index:-1}.portal-scene:after{content:"";position:absolute;left:-10%;right:-10%;bottom:-25%;height:48%;background:radial-gradient(ellipse at 70% 25%,rgba(249,246,228,.72),transparent 60%),linear-gradient(12deg,rgba(227,240,221,.75),rgba(224,237,239,.2));border-radius:50% 50% 0 0;z-index:-1}.portal-title{position:absolute;top:65px;left:max(35px,calc((100vw - 1450px)/2));z-index:4}.portal-title h1{font-size:clamp(30px,3.1vw,48px);line-height:1.01;letter-spacing:-.05em;margin:0;color:#08395b;font-weight:700}.portal-title h1 strong{font-weight:850}.portal-title p{font-size:16px;letter-spacing:.02em;margin:13px 0;color:#204a67}.portal-diagram{position:relative;width:min(100%,1220px);height:960px;margin:0 auto}.portal-track{position:absolute;left:50%;top:50%;width:690px;height:690px;transform:translate(-50%,-50%);border:2px solid rgba(255,255,255,.82);border-radius:50%;box-shadow:0 0 0 1px rgba(15,67,89,.05)}.portrait-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:360px;height:360px;border:6px solid white;border-radius:50%;overflow:hidden;background:radial-gradient(circle at 70% 15%,#f1eed8,#9bbfa6 70%);box-shadow:0 18px 45px rgba(9,52,76,.23);z-index:2}.portrait-back{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 10%,#e8efdd,#8aa98b 72%);filter:blur(10px);transform:scale(1.15)}.portrait-center img{position:absolute;width:102%;height:103%;bottom:-3%;left:-1%;object-fit:contain;object-position:bottom}.portal-node{--size:240px;position:absolute;width:var(--size);height:var(--size);border:5px solid #fff;border-radius:50%;background:#fff;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 12px 32px rgba(9,52,76,.24);text-decoration:none;z-index:3;transition:transform .25s,box-shadow .25s}.portal-node:hover{transform:translateY(-7px) scale(1.025);box-shadow:0 20px 45px rgba(9,52,76,.34)}.node-picture{height:58%;overflow:hidden;background:linear-gradient(145deg,#c9e3ee,#f5faf9);display:flex;align-items:center;justify-content:center}.node-picture img{width:100%;height:100%;object-fit:cover}.wiki-picture img{width:76%;height:90%;object-fit:contain}.node-caption{flex:1;background:linear-gradient(#fff,#f8fcfc);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center;padding:7px 8px 4px;gap:3px}.node-caption strong{font-size:19px;line-height:1.08;letter-spacing:-.02em;color:#083c62}.node-caption>span:not(.node-go){font-size:11px;color:#48647b;line-height:1.15}.node-go{font-size:21px;line-height:1;color:#0b5177;margin-top:auto}.node-0{left:calc(50% - 365px);top:165px}.node-1{left:calc(50% - 120px);top:26px}.node-2{left:calc(50% + 130px);top:165px}.node-3{left:calc(50% + 242px);top:450px}.node-4{left:calc(50% + 40px);top:690px}.node-5{left:calc(50% - 280px);top:690px}.node-6{left:calc(50% - 480px);top:450px}.site-footer{background:#fff;padding:22px clamp(20px,5vw,70px);display:flex;justify-content:space-between;gap:20px;font-size:13px;color:#536b7c}.footer-links{display:flex;gap:20px;flex-wrap:wrap}.footer-links a{text-decoration:none}.page-hero{background:linear-gradient(115deg,#10466b,#57939e);color:#fff;padding:75px 25px}.page-hero-inner{max-width:1080px;margin:auto}.page-hero h1{font-size:clamp(34px,4vw,54px);margin:0 0 12px}.page-hero p{font-size:18px}.content-wrap{max-width:1100px;margin:40px auto 70px;padding:0 22px;display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:26px}.content-card,.side-card{background:white;border-radius:18px;padding:30px;box-shadow:0 8px 26px #173e5212}.content-card{font-size:17px;line-height:1.75;min-width:0}.content-card img{max-width:100%;height:auto}.side-card{align-self:start}.side-card h2{margin-top:0}.side-card a{display:block;padding:9px 0;border-bottom:1px solid #e0ebed;text-decoration:none}.back-home{display:inline-block;margin-top:24px}.site-head:has(+ main:not(.portal-scene)){display:block;background:#fff}.head-inner{max-width:1200px;margin:auto;min-height:75px;padding:12px 25px;display:flex;align-items:center;justify-content:space-between;gap:22px}.brand{text-decoration:none;font-size:24px;font-weight:650;line-height:1.05}.brand strong{font-weight:850}.brand small{display:block;font-size:11px;color:#5a7380;margin-top:7px}.nav{display:flex;gap:13px;flex-wrap:wrap}.nav a{font-size:13px;text-decoration:none}.head-sign{display:none}
@media(max-width:1050px) and (min-width:721px){.portal-diagram{width:1220px;left:50%;margin-left:-610px;transform:scale(.78);transform-origin:top center;height:750px}.portal-scene{min-height:750px}.portal-title{top:18px;left:25px}.portal-title h1{font-size:30px}}
@media(max-width:720px){.portal-scene{min-height:0}.portal-title{position:relative;top:auto;left:auto;text-align:center;padding:32px 15px 8px}.portal-title h1{font-size:33px}.portal-diagram{height:auto;width:100%;padding:20px 16px 45px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.portal-track{display:none}.portrait-center{position:relative;left:auto;top:auto;transform:none;grid-column:1/-1;margin:0 auto 15px;width:260px;height:260px}.portal-node{position:relative;left:auto;top:auto;width:min(100%,230px);height:auto;aspect-ratio:1;margin:auto;--size:unset}.portal-node:hover{transform:translateY(-4px)}.node-caption strong{font-size:clamp(13px,3.7vw,18px)}.node-caption>span:not(.node-go){font-size:10px}.node-go{font-size:17px}.site-footer{flex-direction:column;text-align:center}.content-wrap{grid-template-columns:1fr}.nav{display:none}}
@media(max-width:380px){.portal-diagram{gap:9px;padding-left:8px;padding-right:8px}.node-caption{padding:5px 3px}.node-caption strong{font-size:12px}.node-caption>span:not(.node-go){font-size:9px}}

/* v1.3: compact desktop composition, all circles fully in viewport */
@media(min-width:1051px){.portal-scene{min-height:850px}.portal-diagram{height:850px;width:1100px}.portal-track{width:610px;height:610px}.portrait-center{width:325px;height:325px}.portal-node{--size:212px}.node-picture{height:57%}.node-caption strong{font-size:17px}.node-caption>span:not(.node-go){font-size:10px}.node-0{left:calc(50% - 332px);top:138px}.node-1{left:calc(50% - 106px);top:18px}.node-2{left:calc(50% + 120px);top:138px}.node-3{left:calc(50% + 224px);top:370px}.node-4{left:calc(50% + 38px);top:608px}.node-5{left:calc(50% - 250px);top:608px}.node-6{left:calc(50% - 436px);top:370px}.portal-title{top:55px;left:max(28px,calc((100vw - 1400px)/2))}}
@media(min-width:1051px) and (max-height:850px){.portal-diagram{transform:scale(.88);transform-origin:top center;height:748px}.portal-scene{min-height:748px}.portal-title{top:24px}}

/* Version 1.4: eight circles, compact composition */
@media(min-width:1051px){
.portal-scene{min-height:850px}.portal-diagram{height:850px}
.node-0{left:calc(50% - 445px);top:126px}
.node-1{left:calc(50% - 218px);top:12px}
.node-2{left:calc(50% + 12px);top:12px}
.node-3{left:calc(50% + 240px);top:176px}
.node-4{left:calc(50% + 215px);top:490px}
.node-5{left:calc(50% - 434px);top:410px}
.node-6{left:calc(50% - 250px);top:628px}
.node-7{left:calc(50% + 28px);top:628px}
}
@media(min-width:1051px) and (max-height:850px){.portal-scene{min-height:748px}}
