/*
Theme Name: Onkto Orbit
Theme URI: https://onktokatuh.net/
Author: Onkto Orbit contributors
Description: Adaptives Portfolio mit nativem Scrollen, Black-Hole-Übergängen und barrierearmem Info-Menü. Bestehende Inhaltstypen bleiben unangetastet.
Version: 1.1.5
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: onkto-orbit
Tags: portfolio, photography, custom-menu, featured-images, full-width-template
*/
:root{--ink:#171916;--paper:#e9e9e1;--accent:#dbfa84;--pad:clamp(20px,3.2vw,56px);--view:100svh;--bar:0px;color-scheme:light;font-family:Arial,Helvetica,sans-serif;font-size:16px;background:var(--paper);color:var(--ink)}
*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:.15em}button,input,textarea,select{font:inherit}button{cursor:pointer}img{max-width:100%;height:auto}button,a,input,textarea,select{ -webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #66852b;outline-offset:6px}p{line-height:1.5}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:500}button[hidden],[hidden]{display:none!important}.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link{position:fixed;left:20px;top:-100px;z-index:100000;background:var(--accent);color:var(--ink);padding:15px}.skip-link:focus{top:20px}
.site-header{position:absolute;inset:calc(var(--bar) + 18px) var(--pad) auto;z-index:5;pointer-events:none}.wordmark{font-weight:900;letter-spacing:-.065em;font-size:clamp(32px,8.8vw,152px);line-height:.9;text-transform:uppercase;pointer-events:auto;display:inline-block;max-width:100%;overflow-wrap:anywhere}.home .site-header{color:white;text-shadow:0 1px 16px #0004}.info-toggle,.info-close{width:52px;height:52px;border:1px solid currentColor;border-radius:50%;background:var(--paper);color:var(--ink);display:grid;place-items:center;font:30px/1 Georgia,serif}.info-toggle{position:fixed;right:var(--pad);bottom:max(22px,env(safe-area-inset-bottom));z-index:30;box-shadow:0 2px 14px #0002}.info-toggle:hover,.info-close:hover{background:var(--accent)}.info-close{position:fixed;right:var(--pad);bottom:max(22px,env(safe-area-inset-bottom));background:var(--ink);color:var(--paper);z-index:32}.site-info{background:var(--ink);color:var(--paper);padding:36px var(--pad) 110px}.site-info.is-dialog{position:fixed;inset:var(--bar) 0 0;z-index:31;overflow-y:auto;overscroll-behavior:contain;min-height:0}.info-top h2{font-size:12px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:60px}.orbit-menu{list-style:none;padding:0;margin:0}.orbit-menu>li>a{font-size:clamp(34px,7vw,110px);font-weight:800;letter-spacing:-.06em;line-height:1.12;text-transform:uppercase;display:inline-block;overflow-wrap:anywhere}.orbit-menu a[aria-current="page"]{color:var(--accent)}.orbit-menu .sub-menu{list-style:none;padding:8px 0 20px 24px}.orbit-menu .sub-menu a{display:inline-block;font-size:clamp(20px,3vw,36px);padding:4px 0}.info-note{margin:64px 80px 0 0;font-size:clamp(18px,2.5vw,32px);max-width:30ch}.menu-open{overflow:hidden}
.orbit{position:relative;background:#121411;color:white}.orbit-stage{display:none;position:sticky;top:var(--bar);height:calc(var(--view) - var(--bar));overflow:hidden;pointer-events:none}.stage-image,.orbit-canvas,.stage-shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.stage-a{z-index:0}.stage-b{z-index:1;opacity:0}.orbit-canvas{z-index:2;opacity:0}.stage-shade{z-index:3;background:linear-gradient(180deg,#0003 0%,transparent 40%,#0009 100%)}.orbit-project{position:relative;min-height:var(--view);display:flex;align-items:flex-end;padding:160px var(--pad) 70px;isolation:isolate}.project-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.orbit-project:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#0002,transparent 35%,#000a);z-index:-1;pointer-events:none}.project-copy{width:100%;padding-right:60px;max-width:1400px}.project-index,.project-hint,.scroll-cue{font:12px/1.4 Arial,sans-serif;letter-spacing:.09em;text-transform:uppercase}.project-index{margin-bottom:18px;color:var(--accent)}.project-copy h2{font-size:clamp(40px,7.6vw,116px);letter-spacing:-.06em;line-height:.95;margin:0 0 20px;overflow-wrap:anywhere}.project-copy h2 a{display:inline-block}.project-copy h2 a:focus-visible{outline-color:var(--accent)}.project-arrow{font-weight:400;font-size:.55em;vertical-align:top;display:inline-block;margin-left:.4em}.project-hint{margin:0}.scroll-cue{position:absolute;top:50%;right:var(--pad);writing-mode:vertical-rl}.orbit.is-enhanced .orbit-stage{display:block}.orbit.is-enhanced .orbit-projects{position:relative;margin-top:calc(-1 * (var(--view) - var(--bar)))}.orbit.is-enhanced .project-image{visibility:hidden}.orbit.is-enhanced .orbit-project:after{display:none}.orbit.is-enhanced .orbit-project{min-height:var(--view)}.pagination{padding:40px var(--pad);display:flex;gap:20px;flex-wrap:wrap}.pagination .current{font-weight:700}
.site-footer{padding:70px var(--pad) 100px;background:var(--paper);position:relative}.footer-tagline{font-size:clamp(28px,6.4vw,90px);font-weight:700;letter-spacing:-.065em;line-height:1.02;max-width:16ch;margin-bottom:55px}.footer-menu{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:16px 30px;font-size:clamp(20px,3vw,40px);text-transform:uppercase;letter-spacing:-.035em}.footer-bottom{display:flex;gap:20px;justify-content:space-between;padding-top:42px;font-size:12px;max-width:calc(100% - 60px)}.content-shell{padding:clamp(140px,17vw,260px) var(--pad) 90px;min-height:80vh}.entry-header h1,.archive-heading h1,.empty h1{font-size:clamp(44px,8vw,120px);line-height:1;letter-spacing:-.055em;margin:28px 0 50px;overflow-wrap:anywhere}.eyebrow,.back-link{font-size:12px;text-transform:uppercase;letter-spacing:.08em}.single-cover{width:100%;max-height:88vh;object-fit:contain;background:#dadbd3}.entry-content{max-width:960px;margin:55px auto;font-size:clamp(17px,1.7vw,23px);line-height:1.65;overflow-wrap:anywhere}.entry-content a,.comment-content a{text-decoration:underline}.entry-content h2{font-size:2em;letter-spacing:-.045em;line-height:1.15}.entry-content iframe{max-width:100%}.entry-content .alignwide{width:min(1200px,calc(100vw - 2 * var(--pad)));max-width:none;margin-left:50%;transform:translateX(-50%)}.entry-content .alignfull{width:calc(100vw - 2 * var(--pad));max-width:none;margin-left:50%;transform:translateX(-50%)}.alignleft{float:left;margin:0 24px 20px 0}.alignright{float:right;margin:0 0 20px 24px}.aligncenter{display:block;margin-inline:auto}.wp-caption{max-width:100%}.wp-caption-text,.gallery-caption{font-size:.85em}.sticky{border-top:2px solid}.bypostauthor{border-left:2px solid;padding-left:10px}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:64px 26px}.project-card img{width:100%;aspect-ratio:4/3;object-fit:cover}.project-card h2{font-size:clamp(26px,3vw,44px);letter-spacing:-.04em;margin:18px 0}.project-card p{max-width:50ch}.nav-links{display:flex;justify-content:space-between;flex-wrap:wrap;gap:30px;margin-top:60px}.comments-area{max-width:960px;margin:50px auto}.comments-area input:not([type=checkbox]),.comments-area textarea{display:block;max-width:100%;width:100%}input,textarea,select{padding:12px;border:1px solid #75786d;background:transparent;color:inherit}input[type=submit],button[type=submit]{background:var(--ink);color:var(--paper);padding:12px 18px;border:0}.search-form{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px}.admin-bar{--bar:32px}
@media(max-width:782px){.admin-bar{--bar:46px}.wordmark{font-size:clamp(32px,10.4vw,78px)}.site-header{top:calc(var(--bar) + 24px)}.project-copy h2{font-size:clamp(38px,10vw,76px)}.orbit-project{padding-bottom:95px;padding-top:110px}.project-copy{padding-right:30px}.project-grid{grid-template-columns:1fr}.site-footer{padding-top:50px}.info-top h2{margin-bottom:40px}.orbit-menu>li>a{font-size:clamp(32px,9.2vw,68px)}.entry-content .alignleft,.entry-content .alignright{float:none;margin:20px 0}.info-toggle,.info-close{width:48px;height:48px}.content-shell{padding-top:130px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media print{.site-header{position:static}.info-toggle,.info-close,.site-info,.orbit-stage,.scroll-cue{display:none!important}.orbit-projects{margin-top:0!important}.orbit-project{min-height:auto!important;break-inside:avoid;color:black;padding:20px!important;display:block}.orbit .project-image{position:static;visibility:visible!important;max-height:500px;object-fit:contain}.orbit-project:after{display:none}.orbit{background:white}.project-copy h2{font-size:30px}.site-footer{padding:20px}.project-hint{display:none}}

body:not(.orbit-js) .site-header{position:relative;inset:auto;padding:28px var(--pad);color:var(--ink);text-shadow:none}body:not(.orbit-js) .site-info{padding-top:40px}.info-close:hover{color:var(--ink)}

/* 1.1: polygon control; stable hit area, no rotation of the glyph. */
.info-toggle,.info-close{width:56px;height:56px;border:0;border-radius:0;background:transparent!important;box-shadow:none;isolation:isolate;font:30px/1 Georgia,serif}
.info-toggle{filter:drop-shadow(0 2px 5px #0003)}
.info-shape{position:absolute;inset:0;width:100%;height:100%;z-index:-1;overflow:visible;fill:var(--paper);stroke:var(--ink);stroke-width:1.1;stroke-linejoin:round}
.info-toggle span,.info-close span{position:relative;transform:translateY(2px)}
.info-close{color:var(--ink)}
.info-toggle:hover .info-shape,.info-close:hover .info-shape{fill:var(--accent)}
.info-toggle:focus-visible,.info-close:focus-visible{outline-color:var(--accent)}
.site-info.is-dialog{isolation:isolate;background:#171916}
.site-info.is-dialog:before,.site-info.is-dialog:after{content:"";position:fixed;inset:var(--bar) 0 0;pointer-events:none;z-index:-1;transform-origin:bottom;animation:menu-layer .65s cubic-bezier(.2,.75,.2,1) both}
.site-info.is-dialog:before{background:#394232;animation-duration:.45s}
.site-info.is-dialog:after{background:#171916;animation-delay:.09s}
.site-info.is-dialog .info-top h2,.site-info.is-dialog .info-note{animation:menu-copy .6s .16s both}
.site-info.is-dialog .orbit-menu>li{animation:menu-copy .7s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(.1s + var(--order,0)*.055s)}
.orbit-menu>li>a{position:relative;transition:transform .3s,letter-spacing .3s,color .3s;text-decoration:none;max-width:100%;padding:3px 0}
.orbit-menu>li>a:after{content:"";position:absolute;inset:auto 0 3px;height:2px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .35s}
.orbit-menu>li>a:hover,.orbit-menu>li>a:focus-visible{transform:translateX(8px);letter-spacing:-.04em;color:var(--accent);text-decoration:none}
.orbit-menu>li>a:hover:after,.orbit-menu>li>a:focus-visible:after{transform:scaleX(1)}
.site-info.is-dialog .orbit-menu>li:focus-within{animation:none}
@keyframes menu-layer{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes menu-copy{from{opacity:.15;transform:translateY(35px)}to{opacity:1;transform:translateY(0)}}
.site-footer{z-index:4;isolation:isolate} /* outside the homepage sticky stage */
.footer-menu a{display:inline-block;padding:8px 0;min-height:44px}
/* Project detail only: text sticks within its article, never over the footer. */
.project-detail-layout{display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:clamp(30px,5vw,90px);align-items:start}
.project-description{min-width:0;top:calc(var(--bar) + 24px);align-self:start}
.project-description.can-stick{position:sticky}
.project-description .entry-header h1{font-size:clamp(40px,5.3vw,86px);margin:25px 0 28px}
.project-description .entry-content{font-size:clamp(17px,1.3vw,21px);margin:0;max-width:none;line-height:1.6}
.project-description .entry-content .alignwide,.project-description .entry-content .alignfull{width:100%;max-width:100%;margin-left:0;transform:none}
/* 1.1.5: one definite track; WP aligned figures must not shrink as tables.
   Only extracted gallery media, never description blocks or caption links.
   !important overrides editor pixel dimensions/floats, not image proportions. */
.project-gallery{min-width:0;display:grid;grid-template-columns:minmax(0,1fr);gap:36px}
.project-gallery>.project-gallery-item{min-width:0;width:100%}
.project-gallery figure,.project-gallery .wp-block-image,.project-gallery picture,.project-gallery figure>a,.project-gallery .wp-block-image>a,.project-gallery .project-gallery-item>a,.project-gallery picture>a{display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;height:auto!important;float:none!important;margin:0!important}
.project-gallery img{display:block;width:100%!important;max-width:100%!important;min-width:0!important;height:auto!important;max-height:none!important;object-fit:contain}
.project-gallery figcaption{display:block!important;font-size:14px;line-height:1.5;margin-top:12px;overflow-wrap:anywhere}
@media(max-width:900px){.project-detail-layout{grid-template-columns:1fr;gap:36px}.project-description.can-stick{position:static}.project-description .entry-header h1{font-size:clamp(42px,9vw,72px)}.project-gallery{gap:25px}}
@media(prefers-reduced-motion:reduce){.site-info.is-dialog:before,.site-info.is-dialog:after{animation:none}.orbit-menu>li>a:hover,.orbit-menu>li>a:focus-visible{transform:none}}
@media print{.project-detail-layout{display:block}.project-description.can-stick{position:static}.project-gallery figure{break-inside:avoid;margin-top:20px}}

.project-detail--no-gallery .project-detail-layout{display:block}.project-detail--no-gallery .project-description{max-width:960px}.project-gallery .wp-block-gallery{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:36px!important}.project-gallery .wp-block-gallery .wp-block-image{width:100%!important;flex:none!important}.project-gallery .wp-block-gallery figure img{height:auto!important;object-fit:contain}.project-gallery .wp-block-gallery figure figcaption{position:static!important;background:none!important;color:var(--ink)!important;padding:0!important;text-align:left!important;max-height:none!important}.project-gallery .wp-block-gallery:before,.project-gallery .wp-block-gallery:after{display:none}

/* 1.1.2: maximum complete frontpage photographs; zero edges, no reserved title zones.
   Shared image padding defines exactly the same content rectangle for DOM and WebGL. */
.orbit:not([data-fit="cover"]){--image-top:0px;--image-bottom:0px;--image-side:0px;background:var(--paper)}
.orbit:not([data-fit="cover"]) .orbit-stage{background:var(--paper)}
.orbit:not([data-fit="cover"]) .stage-image,.orbit:not([data-fit="cover"]) .project-image{object-fit:contain;object-position:50% 50%;padding:var(--image-top) var(--image-side) var(--image-bottom);background:transparent}
.orbit:not([data-fit="cover"]) .stage-shade,.orbit:not([data-fit="cover"]) .orbit-project:after{display:none}

.orbit:not([data-fit="cover"]) .project-copy{padding-right:80px}
.orbit:not([data-fit="cover"]) .project-index{margin-bottom:10px}
.orbit:not([data-fit="cover"]) .orbit-project{padding-bottom:40px}
.footer-bottom{align-items:baseline;justify-content:flex-start;flex-wrap:wrap;gap:0 16px;padding-top:0;max-width:calc(100% - 76px);font:12px/1.5 Arial,Helvetica,sans-serif}
.footer-menu{margin:0;gap:0 14px;font:inherit;letter-spacing:normal;text-transform:none;align-items:baseline}
.footer-bottom nav{max-width:100%}.footer-menu a,.footer-top{display:inline-flex;align-items:center;min-height:44px;padding:12px 0;overflow-wrap:anywhere}
.footer-top{margin-left:auto}.footer-tagline:empty{display:none}
@media(max-width:600px){.footer-bottom{gap:0 12px;max-width:100%}.footer-top{margin-left:0;margin-right:76px}.footer-menu{gap:0 12px}.orbit:not([data-fit="cover"]) .project-copy{padding-right:60px}}
@media(max-height:500px){.orbit:not([data-fit="cover"]){--image-top:0px;--image-bottom:0px}.orbit:not([data-fit="cover"]) .orbit-project{padding-bottom:20px}}
@media print{.orbit:not([data-fit="cover"]) .project-image{padding:0}}

/* Short tagline stays on one line; arbitrary longer site descriptions may wrap. */
.footer-tagline{font-size:clamp(18px,4.8vw,64px);max-width:100%;letter-spacing:-.045em;line-height:1.2;overflow-wrap:anywhere;margin-bottom:24px}

/* 1.1.4: original white overlays and accent index, no text panels.
   The earlier no-JS header rule keeps static paper pages readable. */

/* 1.1.2: Only aspect-ratio bands show a blurred enlarged copy; original stays whole. */
.stage-layer{position:absolute;inset:0;overflow:hidden}.stage-layer-a{z-index:0}.stage-layer-b{z-index:1;opacity:0}.stage-layer .stage-b{opacity:1}
.stage-backdrop,.project-backdrop{display:none;position:absolute;inset:-72px;width:calc(100% + 144px);max-width:none;height:calc(100% + 144px);object-fit:cover;filter:blur(24px) brightness(.8);pointer-events:none}
.orbit:not([data-fit="cover"]) .stage-backdrop,.orbit:not([data-fit="cover"]) .project-backdrop{display:block}
.stage-backdrop{z-index:-1}.project-backdrop{z-index:-3}
.orbit:not([data-fit="cover"]) .orbit-project{overflow:hidden}.orbit.is-enhanced .project-backdrop{visibility:hidden}
@media print{.project-backdrop{display:none!important}}
