
:root{color-scheme:dark;--bg:#0b0d10;--ink:#eeeee7;--muted:#a2a5a7;--line:#303337;--accent:#d5ff76}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 Arial,Helvetica,sans-serif}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button,a{color:inherit}a{text-underline-offset:5px}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:6px}::selection{background:var(--accent);color:var(--bg)}.skip{position:fixed;top:-100px;left:20px;z-index:20}.skip:focus{top:10px;background:var(--accent);color:#000;padding:12px}.shell{max-width:1512px;margin:auto;padding:0 5vw}header{height:90px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.wordmark{text-decoration:none;font-weight:bold;letter-spacing:-.6px;font-size:20px}.header-right{display:flex;align-items:center;gap:26px}.small,.eyebrow{font:12px/1.5 'Courier New',monospace;letter-spacing:1.7px;text-transform:uppercase}.muted{color:var(--muted)}.header-link{text-decoration:none;font-size:14px}.hero{min-height:540px;position:relative;display:grid;grid-template-columns:1.15fr 1fr;align-items:center;gap:30px;padding:65px 0 58px}.hero h1{font-size:clamp(60px,7.5vw,112px);line-height:.98;letter-spacing:-.065em;font-weight:400;margin:24px 0 26px}.hero h1 em{font-family:Georgia,serif;font-weight:400;letter-spacing:-.065em;color:var(--accent)}.intro{max-width:370px;color:var(--muted)}.text-link{text-decoration:none;border-bottom:1px solid #636963;padding-bottom:5px;display:inline-block;margin-top:13px}.instrument{height:385px;position:relative;background:radial-gradient(ellipse,#27302550,transparent 67%);isolation:isolate}.instrument canvas{position:absolute;width:100%;height:100%;inset:0;z-index:-1}.orbital-line{position:absolute;width:67%;height:67%;border:1px solid #bcd6a31c;border-radius:50%;left:16.5%;top:16.5%;transform:rotate(-23deg) scaleY(.64);pointer-events:none}.orbital-line.two{transform:rotate(38deg) scaleY(.74);width:52%;left:24%}.dotnav{position:absolute;inset:0}.dotnav a{position:absolute;text-decoration:none;display:flex;align-items:center;justify-content:center;min-width:52px;min-height:52px;transform:translate(-50%,-50%)}.dotnav a:nth-child(1){left:25%;top:36%}.dotnav a:nth-child(2){left:62%;top:23%}.dotnav a:nth-child(3){left:77%;top:63%}.dotnav a:nth-child(4){left:37%;top:79%}.dot{width:10px;height:10px;border-radius:100%;background:#c4d0b9;box-shadow:0 0 17px #d5ff7650;transition:.2s}.dotnav a:hover .dot,.dotnav a:focus .dot{background:var(--accent);box-shadow:0 0 16px 5px #d5ff76ad,0 0 70px 16px #d5ff7644;transform:scale(1.4)}.dotnav span:last-child{position:absolute;top:48px;white-space:nowrap;font-size:14px;opacity:0;transform:translateY(5px);transition:.2s}.dotnav a:hover span:last-child,.dotnav a:focus span:last-child{opacity:1;transform:none}.instrument-caption{position:absolute;bottom:0;left:0;right:0;text-align:center;color:var(--muted);font-size:12px;letter-spacing:2px}.strip{display:flex;justify-content:space-between;gap:20px;padding:17px 0;border-block:1px solid var(--line);color:var(--muted)}section{padding:66px 0}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:25px}h2{font-size:clamp(32px,4vw,52px);font-weight:400;letter-spacing:-.045em;margin:0}h2 sup{font:12px 'Courier New',monospace;letter-spacing:0;vertical-align:top;margin-left:12px;color:var(--muted)}.controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:28px}.filters{display:flex;gap:6px;flex-wrap:wrap}.filters button{background:transparent;border:1px solid transparent;border-radius:30px;padding:7px 13px;color:var(--muted);font-size:14px}.filters button[aria-pressed=true]{color:var(--bg);background:var(--accent)}.sorting{display:flex;gap:10px;align-items:center;font-size:14px;color:var(--muted)}select{background:var(--bg);color:var(--ink);border:0;padding:8px 3px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:38px 22px}.card{min-width:0}.card-button{padding:0;text-align:left;background:none;border:0;width:100%;display:block}.photo{aspect-ratio:1.35;overflow:hidden;background:#171b20;position:relative}.photo img{width:100%;height:100%;object-fit:cover;transition:transform .5s,filter .5s;filter:saturate(.78)}.card-button:hover img{transform:scale(1.035);filter:saturate(1)}.photo .arrow{position:absolute;right:14px;bottom:14px;border-radius:50%;width:35px;height:35px;background:#0b0d10a8;display:grid;place-items:center}.card-meta{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:12px;letter-spacing:.8px;text-transform:uppercase;margin-top:16px}.card h3{font-size:21px;line-height:1.25;letter-spacing:-.5px;font-weight:400;margin:7px 0}.card p{margin:6px 0;color:var(--muted);font-size:14px}.sound-cover{display:flex;flex-direction:column;justify-content:space-between;padding:28px;background:#171e1c;color:var(--accent)}.sound-cover strong{font:italic 42px/1.1 Georgia,serif;font-weight:400;letter-spacing:-2px}.sound-cover span{font:12px 'Courier New',monospace;letter-spacing:3px}.results{color:var(--muted);font-size:13px;margin:24px 0 0}.bio{display:grid;grid-template-columns:1fr 2fr;gap:60px;border-top:1px solid var(--line)}.bio-copy>.lead{font-size:clamp(23px,2.8vw,36px);line-height:1.35;letter-spacing:-.8px;margin:0 0 27px}.bio-copy>p{max-width:790px;color:var(--muted)}.bio-columns{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:38px}.bio-columns h3{font-size:14px;color:var(--accent);font-weight:400}.bio-columns p{font-size:15px;color:var(--muted)}details{border-top:1px solid var(--line);margin-top:30px;padding-top:18px}summary{cursor:pointer;font-size:15px}.cv-list{padding:0;list-style:none}.cv-list li{display:grid;grid-template-columns:80px 1fr;gap:20px;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}.cv-list time{color:var(--muted)}.contact{border-top:1px solid var(--line);padding:70px 0 85px}.contact-layout{display:flex;justify-content:space-between;align-items:end;gap:30px}.contact h2{font-size:clamp(48px,6.7vw,98px);line-height:1.04;margin:24px 0 32px}.email{font-size:clamp(20px,2.4vw,32px);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:8px;overflow-wrap:anywhere}.contact-side{max-width:260px}.copy{border:1px solid var(--line);padding:9px 16px;border-radius:30px;background:none;font-size:14px;margin-top:24px}footer{border-top:1px solid var(--line);padding:24px 0;display:flex;justify-content:space-between;gap:25px;color:var(--muted);font-size:12px}dialog{width:min(720px,calc(100% - 30px));max-height:88vh;overflow:auto;border:1px solid #50554b;background:#121619;color:var(--ink);padding:34px}dialog::backdrop{background:#000b;backdrop-filter:blur(6px)}dialog h2{font-size:38px;line-height:1.1;margin:20px 0}dialog p{color:var(--muted)}.close{float:right;border:1px solid var(--line);background:none;border-radius:50%;width:40px;height:40px;font-size:24px}.detail-img{width:100%;max-height:330px;object-fit:cover;margin-top:22px}.detail-links{display:flex;gap:22px;flex-wrap:wrap}.related{padding-top:20px;margin-top:25px;border-top:1px solid var(--line)}.related button{background:none;border:0;border-bottom:1px solid #50554b;padding:8px 0;margin-right:18px;text-align:left;font-size:14px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@media(hover:none){.dotnav span:last-child{opacity:1;transform:none}.instrument-caption{display:none}}@media(min-width:1500px){.hero{min-height:630px}}@media(max-width:950px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{grid-template-columns:1.15fr 1fr}.instrument{height:320px}.header-right .small{display:none}.bio{grid-template-columns:1fr;gap:28px}}@media(max-width:600px){.shell{padding:0 6vw}header{height:75px}.hero{grid-template-columns:1fr;padding:40px 0 26px;gap:0}.hero h1{font-size:64px}.instrument{height:260px;margin-top:0}.hero .intro{font-size:15px}.dotnav span:last-child{opacity:1;transform:none}.instrument-caption{display:none}.strip{font-size:10px}.strip span:last-child{display:none}.grid{grid-template-columns:1fr;gap:30px}.photo{aspect-ratio:1.4}section{padding:42px 0}.bio-columns{grid-template-columns:1fr;gap:10px}.contact-layout{display:block}.contact-side{margin-top:35px;max-width:100%}footer{flex-wrap:wrap}.section-heading .small{display:none}dialog{padding:23px}.header-right{gap:15px}.sorting{width:100%;justify-content:space-between}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

/* Project-inspired navigation */
.instrument{--shader-color:#d5ff76;--shader-rgb:213,255,118;background:radial-gradient(ellipse,rgba(var(--shader-rgb),.045),transparent 70%)}
.instrument canvas{mix-blend-mode:screen}
.instrument-caption{bottom:-8px;line-height:1.5;font-size:11px;letter-spacing:1.5px;pointer-events:none}
.instrument-caption small{display:block;font-family:Arial,sans-serif;font-size:12px;letter-spacing:.3px;color:#858b90;margin-top:3px}
.dot{background:var(--shader-color);box-shadow:0 0 17px rgba(var(--shader-rgb),.4)}
.dotnav a:hover .dot,.dotnav a:focus .dot{background:var(--shader-color);box-shadow:0 0 16px 5px rgba(var(--shader-rgb),.7),0 0 70px 16px rgba(var(--shader-rgb),.27)}
.dotnav a.chosen span:last-child{opacity:1;transform:none}
.instrument[data-transition=absorbing] .instrument-caption{opacity:0;transition:opacity .2s}
.instrument[data-renderer=fallback]::before{content:'';position:absolute;inset:18% 23%;border:1px solid var(--shader-color);border-radius:50%;box-shadow:0 0 50px rgba(var(--shader-rgb),.2),inset 0 0 45px rgba(var(--shader-rgb),.15);transform:rotate(-25deg) scaleY(.8);pointer-events:none}
.portal-veil{position:fixed;inset:0;z-index:100;pointer-events:none;background:radial-gradient(circle at var(--origin-x) var(--origin-y),#090b10 0%,#090b10 55%,#13161b 100%);opacity:0}
.portal-veil[hidden]{display:none}
@media(max-width:600px),(hover:none){.instrument-caption{display:block;font-size:10px;bottom:-42px}.instrument-caption small{font-size:11px}.instrument{margin-bottom:52px}}
.card-button{text-decoration:none}.project-intro{padding:55px 0 40px}.project-kicker{margin:45px 0 18px;color:var(--accent)}.project-intro h1{font-size:clamp(42px,6vw,86px);line-height:1.04;max-width:1000px;letter-spacing:-.05em;font-weight:400;margin:0 0 20px}.project-place{color:var(--muted)}.project-links{display:flex;gap:14px;flex-wrap:wrap;margin-top:24px}.project-links a{padding:10px 20px;border:1px solid var(--line);border-radius:24px;text-decoration:none}.project-cover{margin:0 0 65px;max-height:75vh;overflow:hidden;background:#111}.project-cover img{width:100%;max-height:75vh;object-fit:contain;display:block}.project-body{max-width:1120px;margin:auto}.project-body .prose{max-width:780px;margin:30px auto 45px;line-height:1.8;font-size:18px;color:#c9cbcc}.block-heading{font-size:clamp(26px,3vw,40px);max-width:780px;margin:60px auto 25px}.content-photo{margin:40px 0 60px}.content-photo img{width:100%;max-height:850px;object-fit:contain;display:block}.content-photo figcaption,.content-gallery figcaption{font-size:14px;color:var(--muted);padding-top:10px}.content-gallery{display:grid;grid-template-columns:1fr 1fr;gap:20px}.content-gallery figure{margin:0}.content-gallery img{width:100%;height:auto;max-height:650px;object-fit:contain}.template-gallery{display:grid;grid-template-columns:1fr 1fr;gap:20px}.template-gallery .content-photo{margin:0}.template-gallery .prose,.template-gallery .block-heading,.template-gallery .video-block,.template-gallery .content-gallery{grid-column:1/-1;width:100%}.template-performance .prose{border-left:1px solid var(--line);padding-left:28px}.template-music{max-width:780px}.video-block{margin:40px 0}.video-block>a{display:inline-block;margin-top:14px;font-size:14px;color:var(--muted)}.load-video{width:100%;aspect-ratio:16/9;background:#14191f;border:1px solid var(--line);font-size:22px;display:flex;justify-content:center;align-items:center;gap:30px}.load-video span{color:var(--accent)}.project-video{width:100%;aspect-ratio:16/9;border:0}.project-end{border-bottom:1px solid var(--line)}.related-projects{padding-top:48px}
@media(max-width:600px){.project-intro{padding-top:30px}.project-kicker{margin-top:30px}.project-body .prose{font-size:16px}.template-gallery,.content-gallery{grid-template-columns:1fr}.project-cover{margin-bottom:35px}.content-photo{margin:25px 0 40px}.block-heading{margin-top:40px}}
.instrument{height:430px;margin-bottom:45px}.instrument-caption{bottom:-44px;pointer-events:auto}.shader-selector{display:flex;justify-content:center;align-items:center;gap:12px;font:12px monospace;letter-spacing:1px;color:var(--muted)}.shader-selector select{font:14px Arial,sans-serif;color:var(--ink);background:transparent;border:0;max-width:230px;letter-spacing:0;cursor:pointer;padding:4px}.motion-toggle{background:transparent;border:0;border-bottom:1px solid #555f65;color:var(--muted);font:12px Arial,sans-serif;letter-spacing:0;padding:2px 0;margin-top:7px}.instrument-caption .study-note{font-size:12px}.hero{gap:45px}.dotnav a{z-index:2}@media(max-width:600px){.instrument{height:300px;margin-bottom:70px}.instrument-caption{bottom:-65px}.hero{gap:0}.shader-selector{font-size:12px}}

/* Full-screen opening scene. Copy and navigation share the canvas without overlapping. */
.home-page>.shell>header{position:absolute;top:0;left:5vw;right:5vw;height:88px;z-index:5;border:0}
.home-page .hero{width:100vw;margin-left:calc(50% - 50vw);height:100svh;min-height:640px;display:flex;align-items:center;padding:100px 6vw 130px;isolation:isolate;overflow:hidden}
.hero-copy{position:relative;z-index:2;width:43%;max-width:680px;pointer-events:none;text-shadow:0 2px 28px #080a0daa}
.hero-copy a{pointer-events:auto}.hero-copy .intro{color:#d2d5d2;max-width:360px}.hero-copy .eyebrow{color:#c1c5c0}
.home-page .hero h1{font-size:clamp(60px,6.4vw,112px)}
.home-page .instrument{position:absolute;inset:0;width:100%;height:100%;margin:0;z-index:0;background:#0b0d10}
.home-page .instrument::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#0b0d1070,transparent 65%);z-index:0}
.home-page .instrument canvas{z-index:0;mix-blend-mode:screen}
.home-page .dotnav{left:49%;right:7%;top:19%;bottom:20%;z-index:3}
.home-page .dotnav a:nth-child(1){left:16%;top:28%}.home-page .dotnav a:nth-child(2){left:68%;top:15%}.home-page .dotnav a:nth-child(3){left:85%;top:65%}.home-page .dotnav a:nth-child(4){left:35%;top:86%}
.home-page .instrument-caption{left:48%;right:6%;bottom:5%;z-index:4;line-height:1.5}
.home-page .strip{margin-top:0}.shader-selector select{color-scheme:dark;background:transparent}.shader-selector option{background:#111518;color:#eeeee7}
:focus:not(:focus-visible),[tabindex="-1"]:focus{outline:none}
:where(a,button,input,select,textarea,summary):focus-visible{outline:2px solid var(--accent);outline-offset:5px}
.dotnav a:focus-visible{outline:0}.dotnav a:focus-visible .dot{box-shadow:0 0 0 4px #0b0d10,0 0 0 6px var(--accent),0 0 40px var(--accent)}
a,button{-webkit-tap-highlight-color:transparent}
/* Square mapping tiles; project links remain separate from the image action. */
.template-mapping{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;max-width:none}
.template-mapping>.block-heading,.template-mapping>.prose{grid-column:1/-1;width:100%;max-width:none;margin:30px 0 16px}
.template-mapping>.prose{max-width:850px;margin:12px 0 28px}.template-mapping>.block-heading{font-size:clamp(24px,3vw,38px)}
.media-tile{position:relative;aspect-ratio:1;margin:0;min-width:0;background:#14181c;overflow:hidden;border:0}
.photo-open{display:block;position:relative;width:100%;height:100%;color:var(--ink);text-decoration:none}
.photo-open>img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .5s ease}
.photo-open:hover>img{transform:scale(1.04)}
.media-annotation{position:absolute;inset:auto 0 0;display:flex;flex-direction:column;gap:5px;padding:42px 20px 20px;background:linear-gradient(transparent,#080b0fee);opacity:0;transform:translateY(7px);transition:opacity .2s,transform .2s;pointer-events:none}
.media-annotation strong{font-size:17px;line-height:1.35;font-weight:400}.media-annotation>span{font-size:12px;color:#c5c9c5}
.media-tile:hover .media-annotation,.media-tile:focus-within .media-annotation,.video-loop:hover .media-annotation,.video-loop:focus-within .media-annotation{opacity:1;transform:none}
.media-project-link{color:var(--accent);font-size:13px;text-decoration:none}
.media-tile>.media-project-link,.video-loop>.media-project-link{position:absolute;right:14px;top:14px;max-width:calc(100% - 28px);padding:8px 12px;background:#0b0d10db;border-radius:20px;z-index:3;opacity:0;transition:opacity .2s}
.media-tile:hover>.media-project-link,.media-tile:focus-within>.media-project-link,.video-loop:hover>.media-project-link,.video-loop:focus-within>.media-project-link{opacity:1}
.video-loop{position:relative;aspect-ratio:16/9;background:#15191e;margin:35px 0;overflow:hidden}
.video-loop.media-tile{aspect-ratio:1;margin:0}.template-gallery>.video-loop{grid-column:1/-1}
.video-poster,.video-surface,.video-open{position:absolute;inset:0;width:100%;height:100%;display:block;border:0}
.video-poster{object-fit:cover}.video-surface{opacity:0;transition:opacity .35s;pointer-events:none}.video-loop.is-playing .video-surface{opacity:1}
.video-surface iframe{position:absolute;inset:0;width:100%;height:100%;border:0;pointer-events:none}
.video-loop.media-tile .video-surface iframe{width:177.78%;left:-38.89%}
.video-open{z-index:2;color:var(--ink);text-decoration:none}.video-badge{position:absolute;top:15px;left:15px;font:11px monospace;letter-spacing:1px;background:#0b0d10bc;padding:7px 10px;border-radius:20px}
.image-viewer{width:100vw;height:100dvh;max-width:100vw;max-height:100dvh;margin:0;padding:55px 5vw 25px;border:0;background:#080b0ff5;overflow:auto}
.image-viewer::backdrop{background:#080b0ff5}.image-viewer figure{margin:0;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}
.viewer-image{display:block;max-width:100%;max-height:76vh;object-fit:contain;min-height:0}.image-viewer figcaption{max-width:800px;text-align:center;font-size:14px}.viewer-annotation{font-size:18px;font-weight:400}.viewer-caption{margin:5px 0;color:var(--muted)}.viewer-project{color:var(--accent)}
.viewer-close{position:absolute;right:24px;top:16px;border:0;background:transparent;padding:10px;font-size:15px;color:var(--ink)}
body.image-open{overflow:hidden}
@media(hover:none){.media-annotation{opacity:1;transform:none;padding:32px 12px 12px}.media-annotation strong{font-size:14px}.media-project-link{font-size:11px}.media-tile>.media-project-link,.video-loop>.media-project-link{opacity:1;right:8px;top:8px;padding:6px 8px;max-width:calc(100% - 16px)}}
@media(max-width:950px){.template-mapping{grid-template-columns:repeat(2,minmax(0,1fr))}.home-page .hero h1{font-size:clamp(46px,7vw,68px)}}
@media(max-width:600px){
 .home-page>.shell>header{height:68px;left:6vw;right:6vw}.home-page .wordmark{font-size:17px}.home-page .header-right{gap:12px}.home-page .header-link{font-size:12px}
 .home-page .hero{height:100svh;min-height:620px;padding:100px 7vw 0;align-items:flex-start}
 .hero-copy{width:90%;max-width:360px}.home-page .hero h1{font-size:clamp(42px,12vw,66px);margin:17px 0 16px}.hero-copy .eyebrow{font-size:10px}.hero-copy .intro{font-size:13px;line-height:1.5;max-width:290px}.hero-copy .text-link{font-size:13px;margin-top:4px}
 .home-page .instrument::after{background:linear-gradient(180deg,#0b0d1066,transparent 66%)}
 .home-page .dotnav{left:8%;right:8%;top:52%;bottom:16%}.home-page .dotnav a:nth-child(1){left:13%;top:28%}.home-page .dotnav a:nth-child(2){left:65%;top:9%}.home-page .dotnav a:nth-child(3){left:88%;top:63%}.home-page .dotnav a:nth-child(4){left:38%;top:82%}
 .home-page .instrument-caption{left:5%;right:5%;bottom:max(12px,env(safe-area-inset-bottom));font-size:10px}.home-page .instrument-caption .study-note{font-size:10px}.home-page .shader-selector select{font-size:12px}.home-page .motion-toggle{font-size:11px}.dotnav span:last-child{font-size:12px;top:44px}
 .template-mapping{gap:10px}.media-annotation{opacity:1;transform:none;padding:30px 10px 10px}.media-annotation strong{font-size:13px}.media-annotation>span{font-size:10px}.video-badge{font-size:9px;top:8px;left:8px;padding:5px 7px}.image-viewer{padding:65px 4vw 20px}.viewer-image{max-height:72svh}
}
@media(max-height:700px) and (max-width:600px){.home-page .hero{min-height:560px;padding-top:78px}.home-page .hero h1{font-size:42px}.hero-copy .intro{margin:8px 0}.home-page .dotnav{top:53%;bottom:19%}.home-page .instrument-caption .study-note{display:none}}
@media(prefers-reduced-motion:reduce){.photo-open:hover>img{transform:none}.video-surface{transition:none}}
/* Persistent navigation labels and a darker reading area on small screens. */
.dotnav span:last-child{opacity:1;transform:none;text-shadow:0 1px 8px #000,0 0 18px #000;font-size:14px}
.dotnav a:hover span:last-child,.dotnav a:focus-visible span:last-child{color:var(--accent)}
.home-page .instrument-caption{background:radial-gradient(ellipse,#0b0d10a6,transparent 75%);padding:12px}
@media(max-width:600px){.home-page .instrument::after{background:linear-gradient(180deg,#080b0ff0 0%,#080b0fd9 27%,#080b0f9c 43%,#080b0f22 68%,#080b0f80 100%)}.hero-copy{text-shadow:0 2px 12px #000}.hero-copy .intro,.hero-copy .eyebrow{color:#e4e7e1}.dotnav span:last-child{font-size:12px}}
.compact-details{max-width:900px;margin:28px auto;padding:20px 0;border-top:1px solid var(--line);width:100%;grid-column:1/-1}
.compact-details h2{font-size:22px;letter-spacing:-.02em;margin:0 0 14px}.compact-copy{font-size:14px;line-height:1.6;color:#c9cbcc}.compact-copy p{margin:0 0 7px}.credit-row{display:grid;grid-template-columns:minmax(130px,1fr) 2fr;gap:15px;padding:5px 0}.credit-row>span{color:var(--muted)}.credit-row p{margin:0}
.compact-details dl{margin:0;font-size:14px}.compact-details dl>div{display:grid;grid-template-columns:minmax(130px,1fr) 2fr;gap:15px;padding:5px 0}.compact-details dt{color:var(--muted)}.compact-details dd{margin:0}.compact-details a{color:var(--ink);text-decoration:none}.compact-details a:hover{color:var(--accent)}
.artist-intro{display:flex;align-items:start;gap:40px}.artist-photo{width:220px;max-height:280px;object-fit:cover}.artist-intro .prose{max-width:760px;color:var(--muted)}
.artwork-video{margin:24px 0;min-width:0}.artwork-video video{width:100%;max-height:80vh;display:block;object-fit:contain;background:#101317}.artwork-video figcaption{font-size:14px;color:var(--muted);padding-top:10px}
@media(max-width:600px){.artist-intro{flex-direction:column;gap:24px}.artist-photo{width:150px}.credit-row,.compact-details dl>div{grid-template-columns:1fr 1.5fr;gap:12px}.compact-details{margin:18px auto;padding:16px 0}}

/* Image browsing controls stay reachable on desktop and phones. */
.image-viewer{padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}
.viewer-navigation{position:fixed;z-index:5;bottom:calc(18px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:16px;max-width:calc(100vw - 24px);padding:6px 10px;border-radius:30px;background:#101417f2;box-shadow:0 4px 28px #0006}
.viewer-navigation button{min-height:44px;padding:8px 12px;border:0;border-radius:24px;background:transparent;color:var(--ink);font:inherit;font-size:14px;white-space:nowrap;cursor:pointer}
.viewer-navigation button:hover{background:#ffffff12}.viewer-navigation button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.viewer-navigation button:disabled{opacity:.35;cursor:default}
.viewer-position{min-width:48px;text-align:center;font:12px monospace;color:var(--muted);white-space:nowrap}.viewer-image{touch-action:pan-y pinch-zoom}
@media(max-width:600px){.viewer-navigation{gap:6px}.viewer-navigation button{padding:8px 10px}.image-viewer .viewer-image{max-height:62svh}}

.video-loop[data-video-aspect="portrait"] .video-poster{transform:scale(2.38)}

.card .photo img.generative-cover-art{transform:scale(1.95);object-position:50% 46%;filter:none}.card:hover .photo img.generative-cover-art{transform:scale(2.02)}
