:root { font-family: Arial, Helvetica, sans-serif; color: #000; background: #fff; font-synthesis: none; }
* { box-sizing: border-box; }
html,body {margin:0; min-height:100%; -webkit-text-size-adjust:100%; text-size-adjust:100%;}
a, a:link, a:visited { color: #000; text-decoration:none; }
/* CONTACT is the only blue hyperlink on the website. */
a.contact-access, a.contact-access:visited,
a[href="/contact.html"], a[href="/contact.html"]:visited,
a[href="contact.html"], a[href="contact.html"]:visited { color: #0077cc; }
a:hover { text-decoration:underline; }
a:focus-visible, button:focus-visible, input:focus-visible { outline: 2px solid #000; outline-offset: 3px; }
body:not(.secondary) { overflow:hidden; }
/* Ordinary public documents must scroll; the landing canvas is the only fixed view. */
body.secondary { position:static; height:auto; min-height:100vh; overflow-x:hidden; overflow-y:auto; -webkit-overflow-scrolling:touch; }
.viewport { position:fixed; inset:0; overflow:auto; scrollbar-width:none; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; touch-action:pan-x pan-y; }
.viewport::-webkit-scrollbar {display:none;}
.viewport.is-grabbing {cursor:grabbing; user-select:none;}
.world {position:relative; width:1610px; height:1250px; user-select:none;}
.piece {position:absolute; margin:0;}
.entry { width:340px; text-align:center; font-size:17px; line-height:1.36; z-index:2; padding:2px; }
.artist-info { white-space:nowrap; }
.password-form {margin:24px auto 0; width:90%; max-width:305px;}
.password-row {display:flex; width:100%; border:1px solid #333; height:31px;}
.password-row input {min-width:0; flex:1; border:0; padding:5px 8px; outline-offset:-2px; background:#fff; color:#222; font:13px Arial, sans-serif; border-radius:0;}
.password-row input::placeholder {color:#888; opacity:1;}
.password-row button {border:0; border-left:1px solid #333; background:white; color:#222; cursor:pointer; width:35px; font:19px/1 Arial, sans-serif; border-radius:0;}
.contact-access {display:inline-block; margin-top:17px; font-size:15px; line-height:1.4;}
.password-error {margin:7px 0 0; font:12px/1.4 Arial, sans-serif; color:#000;}
.slideshow {width:340px; aspect-ratio: 1523 / 1141; overflow:hidden; background:#fff;}
.slide {position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:contain; pointer-events:none;}
.slide-010 {z-index:2; animation:swap-first 9s steps(1,end) infinite;}
.slide-011 {z-index:1;}
@keyframes swap-first {0%,49.999%{opacity:1;}50%,100%{opacity:0;}}
.shark-piece {width:225px; aspect-ratio:600 / 1066; overflow:hidden; background:#fff;}
.shark-video {display:block; width:100%; height:100%; object-fit:contain; pointer-events:none;}
.pf1-piece {width:315px; aspect-ratio:var(--pf1-ratio,1.4);}
.pf1-link {display:block; width:100%; height:100%;}
.pf1-piece img {display:block; width:100%; height:100%; object-fit:contain;}
.legal-links {position:fixed; bottom:14px; right:18px; z-index:4; display:flex; gap:18px; font:12px/1.3 Arial, sans-serif; background:rgba(255,255,255,.92); padding:5px;}
.legal-links a {color:#000;}
.sr-only {position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap;}
/* Existing CONTACT / IMPRINT / PRIVACY pages from v16 */
.secondary {min-height:100vh; padding:18px; font-size:15px; line-height:1.5;}
.secondary .back {display:inline-block; margin-bottom:20px;}
.secondary-content {max-width:900px; margin:0 auto 70px;}
.imprint {max-width:700px;}
.imprint p {margin:0 0 1.2em;}
.contact-content h1,.legal-content h1 {margin:0 0 1.3em; font:inherit; font-weight:normal;}
.contact-links {display:flex; flex-direction:column; align-items:flex-start; gap:12px;}
.legal-content {max-width:700px;}
.legal-content section {margin:0 0 2.1em;}
.legal-content h2 {font:inherit; font-weight:normal; margin:0 0 .45em;}
.legal-content section p,.legal-content p {margin:0 0 1em;}
.legal-meta {margin-top:3em; font-size:13px;}
@media (max-width:600px) {
 .world {width:910px; height:1370px;}
 .entry {width:300px; font-size:15px;}
 .password-form {margin-top:20px;}
 .slideshow {width:300px;}
 .pf1-piece {width:260px;}
 .shark-piece {width:195px;}
 .contact-access {font-size:14px;}
 .legal-links {bottom:calc(10px + env(safe-area-inset-bottom));right:8px; font-size:11px; gap:14px;}
 .secondary {padding:12px;}
 .secondary-nav {font-size:11px; gap:8px 13px; margin-bottom:20px;}
}
@media (prefers-reduced-motion:reduce) {.slide-010 {animation:none;}}

/* Public CV styles retained from original. */
/* Navigation has the same unadorned small Arial as the landing page CV link. */
.secondary-nav {
  display:flex; flex-wrap:wrap; align-items:baseline;
  gap:8px clamp(10px, 3vw, 18px);
  margin:0 0 24px;
  font:12px/1.3 Arial, Helvetica, sans-serif;
}
.secondary-nav .back { margin:0; }
.secondary-nav a { white-space:nowrap; font:inherit; }
.secondary .cv-text { margin:0; white-space:pre-wrap; overflow-wrap:anywhere; font:14px/1.5 "Courier New", Courier, monospace; }
@media(max-width:600px) { .secondary .cv-text {font-size:12px;} }

/* Keep secondary navigation as small as the landing-page CV link on phones. */
@media (max-width:600px) { .secondary-nav {font-size:11px; gap:8px 13px; margin-bottom:20px;} }

/* V33: meaningful link remains visible even if all random PF1 thumbnails fail. */
.pf1-image-fallback:not([hidden]) {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%; height: 100%; min-height: 115px;
  font: 16px/1.2 Arial, Helvetica, sans-serif;
  color: #000;
}
