:root{color-scheme:dark;--ink:#050811;--gold:#c8b58e;--white:#e9e6df}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--ink);color:var(--white);font-family:'Shippori Mincho',serif;font-weight:400}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:1px solid var(--gold);outline-offset:8px}button{border:0;background:none}.skip{position:fixed;top:-100px;z-index:100;background:#111;padding:15px}.skip:focus{top:10px}.nav{position:fixed;z-index:30;top:0;width:100%;display:flex;align-items:center;gap:28px;padding:24px 4vw;background:linear-gradient(#050811c9,transparent)}.brand{font-family:'Cormorant Garamond',serif;font-size:36px;letter-spacing:.17em;color:var(--gold)}.brand small{display:block;font-size:8px;letter-spacing:.38em;margin-top:2px}.nav nav{display:flex;gap:32px;margin-left:auto;font-size:12px;letter-spacing:.1em}.nav a:hover,.text-link:hover{color:var(--gold)}#motion{border:1px solid #c8b58e44;border-radius:24px;padding:10px 14px;font-size:10px;min-height:40px}.hero{height:100vh;height:100svh;min-height:620px;position:relative;isolation:isolate;background:url('../assets/hero-0da06f22-poster.jpg') center/cover}.hero video{position:absolute;width:100%;height:100%;object-fit:cover;z-index:-2}.hero::after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 38%,#05081140 58%,var(--ink) 100%);z-index:-1}.hero-copy{position:absolute;bottom:7%;text-align:center;width:100%}.eyebrow{font-family:'Cormorant Garamond',serif;color:var(--gold);font-size:11px;letter-spacing:.32em}.hero h1{font-size:clamp(27px,3vw,44px);font-weight:400;letter-spacing:.35em;margin:18px 0}.hero-copy>p:not(.eyebrow){font-size:12px;letter-spacing:.15em;line-height:2.2}.scroll{display:flex;align-items:center;flex-direction:column;font-size:8px;letter-spacing:.3em;margin-top:26px;color:var(--gold)}.scroll span{height:38px;width:1px;background:linear-gradient(transparent,var(--gold));margin-bottom:12px}.journey{position:relative;background:var(--ink)}.stage{position:relative;min-height:100vh;overflow:hidden}.enhanced .journey{height:1100vh}.enhanced .stage{position:sticky;top:0;height:100vh;height:100svh}.stage canvas,.nebula{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.nebula{background:radial-gradient(ellipse at 60% 60%,#54406228,transparent 50%),radial-gradient(ellipse at 25% 70%,#1f46642a,transparent 50%)}.gallery-heading{position:absolute;left:7%;top:15%;z-index:5;pointer-events:none}.gallery-heading h2{font-weight:400;font-size:clamp(20px,2.1vw,30px);line-height:1.8;letter-spacing:.2em}.art-space{display:grid;grid-template-columns:repeat(2,1fr);gap:50px;padding:230px 7% 100px}.art{padding:0;display:block;text-align:center;position:relative}.art img{width:100%;height:auto;object-fit:contain;filter:drop-shadow(0 0 24px #7785bd20)}.art-label{display:flex;flex-direction:column;gap:12px;margin-top:16px;font-size:18px;letter-spacing:.16em}.art-label small{font:10px 'Cormorant Garamond',serif;color:var(--gold);letter-spacing:.2em}.art-label em{font-size:10px;font-style:normal;color:var(--gold);letter-spacing:.14em}.enhanced .art-space{display:block;padding:0;position:absolute;inset:0}.enhanced .art{position:absolute;left:50%;top:47%;width:min(36vw,52vh);will-change:transform,opacity;transform-origin:50% 50%}.enhanced .art-label{position:absolute;top:100%;left:50%;transform:translateX(-50%);width:300px}.progress{position:absolute;right:5%;bottom:6%;display:flex;align-items:center;gap:20px;font-size:10px;letter-spacing:.25em}.track{width:90px;height:1px;background:#c8b58e33}.track i{display:block;height:1px;width:100%;transform:scaleX(.077);transform-origin:left;background:var(--gold)}.journey-controls{position:absolute;bottom:5%;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:24px;color:var(--gold)}.journey-controls span{font-size:8px;letter-spacing:.2em}.journey-controls button{min-width:44px;min-height:44px}.artist{max-width:1100px;margin:auto;padding:160px 50px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:100px}.artist-image img{width:100%;display:block;mask-image:linear-gradient(black 70%,transparent)}h2{font-weight:400}.artist h2{font-size:24px;line-height:2;letter-spacing:.08em}.artist p:not(.eyebrow){font-size:13px;line-height:2.7;color:#b9bac1}.signature{font-family:'Cormorant Garamond',serif;font-size:40px;color:var(--gold)}.inquiry{padding:80px 24px 140px;text-align:center;background:radial-gradient(ellipse at bottom,#29233940,transparent 65%)}.inquiry h2{font-size:26px;letter-spacing:.2em;margin:28px 0 40px}.text-link{font-size:12px;display:inline-block;border-bottom:1px solid #c8b58e66;padding-bottom:12px;color:var(--gold)}footer{margin:0 5%;border-top:1px solid #c8b58e22;display:flex;align-items:center;justify-content:space-between;padding:30px 0}footer span,footer>a:last-child{font-size:10px;color:#96969d}dialog{width:min(1150px,95vw);max-height:94svh;overflow:auto;border:1px solid #c8b58e33;background:#080d18;color:var(--white);padding:65px 45px 45px}dialog[open]{display:grid;grid-template-columns:1.4fr 1fr;align-items:center;gap:40px}dialog::backdrop{background:#02050bf0;backdrop-filter:blur(12px)}dialog>img{width:100%;max-height:72svh;object-fit:contain}dialog h2{font-size:27px;letter-spacing:.1em}dialog p{font-size:12px;color:var(--gold)}.close{position:absolute;right:20px;top:15px;font-size:12px;min-height:44px}.modal-open{overflow:hidden}
@media(max-width:767px){.nav{padding:18px 20px;gap:12px;flex-wrap:wrap}.brand{font-size:28px}.nav nav{gap:16px;font-size:10px}.nav #motion{position:absolute;right:20px;top:70px;font-size:9px;padding:5px 10px;min-height:34px}.hero{min-height:580px}.hero video{object-position:49% 50%}.hero h1{font-size:27px}.hero-copy{bottom:7%}.gallery-heading{left:24px;top:15%}.gallery-heading h2{font-size:20px}.enhanced .art{width:min(68vw,40vh);top:49%}.enhanced .art-label{font-size:16px;gap:9px}.progress{right:22px;bottom:11%;font-size:9px}.track{width:50px}.journey-controls{bottom:3%;white-space:nowrap}.artist{padding:90px 28px;gap:32px;grid-template-columns:1fr}.artist-image{max-width:320px;margin:auto}.artist h2{font-size:21px}.inquiry{padding:50px 20px 90px}.inquiry h2{font-size:19px;letter-spacing:.08em}dialog[open]{grid-template-columns:1fr;gap:12px;padding:60px 22px 30px}dialog>img{max-height:45svh}dialog h2{font-size:21px}.art-space{grid-template-columns:1fr;padding:230px 40px 100px}.art-label{font-size:17px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.journey-controls,.progress{display:none}}
.arrival{position:relative;min-height:90svh;padding:150px 7% 110px;text-align:center;background:radial-gradient(ellipse at 50% 20%,#29203855,transparent 65%)}.arrival>h2{font-size:32px;letter-spacing:.2em;margin-top:25px}.arrival-lead{font-size:12px;line-height:2.5;color:#a8a6ae;letter-spacing:.16em}.destinations{display:grid;grid-template-columns:repeat(3,1fr);gap:55px;max-width:1100px;margin:90px auto 0;text-align:left}.destinations a{border-top:1px solid #c8b58e55;padding:28px 0;transition:transform .5s}.destinations a:hover{transform:translateY(-8px)}.destinations small{font-size:10px;letter-spacing:.2em;color:var(--gold)}.destinations h3{font-size:22px;font-weight:400;letter-spacing:.1em;margin-top:28px}.destinations p{font-size:12px;color:#a8a6ae}.destinations span{font-size:11px;color:var(--gold);display:block;margin-top:30px}@media(max-width:767px){.arrival{padding:100px 28px 60px}.arrival>h2{font-size:23px}.destinations{grid-template-columns:1fr;gap:20px;margin-top:60px}.destinations a{padding:24px 0}.destinations h3{font-size:21px}.destinations span{margin-top:22px}}
html{scroll-padding-top:0}.gallery-heading{left:7%;top:14%}.gallery-heading h2{font-size:22px;line-height:1.7}.enhanced .art{top:53%;width:min(37vw,49vh)}.film-away #motion{visibility:hidden}.film-away .nav{background:linear-gradient(#050811,transparent)}@media(max-width:767px){.gallery-heading{top:14%;left:24px}.gallery-heading h2{font-size:19px}.enhanced .art{top:51%;width:min(68vw,38vh)}}
.info-main{padding:170px 5% 100px;max-width:1250px;margin:auto;text-align:center}.info-main>h1{font-size:36px;font-weight:400;letter-spacing:.18em}.info-main .artist{text-align:left;padding:65px 0}.narrow{max-width:850px}.order-art{width:min(310px,75%);margin:45px auto 25px;display:block}.info-lead,.order-notes p{font-size:14px;line-height:2.4;color:#c4c1c6}.order-notes{border-top:1px solid #c8b58e33;margin:50px auto 40px;padding-top:25px}.order-notes h2{font-size:20px}.info-page{background:radial-gradient(ellipse at 60% 20%,#23233566,transparent 60%),#050811}@media(max-width:767px){.info-main{padding:140px 24px 65px}.info-main>h1{font-size:27px}.info-main .artist{padding:40px 0}.info-lead,.order-notes p{font-size:12px}}
.contact-email{display:inline-block;color:var(--gold);font-size:clamp(15px,3vw,23px);margin:25px 0 45px;letter-spacing:.03em}#mail-form{text-align:left;max-width:560px;margin:auto}#mail-form label{display:block;font-size:12px;letter-spacing:.1em;margin:24px 0}#mail-form input,#mail-form select,#mail-form textarea{display:block;width:100%;background:#0b101c;color:var(--white);border:1px solid #c8b58e44;border-radius:0;padding:14px;font:16px 'Shippori Mincho',serif;margin-top:10px}#mail-form textarea{resize:vertical}#mail-form button{background:none;cursor:pointer}.mail-note,#mail-status{font-size:11px;color:#a8a6ae;line-height:2}
/* Forward travel: a single optical axis and full-frame approach */
.enhanced .journey{height:2100vh}.enhanced .art{top:48%;left:50%;width:min(80vw,74vh);transform-origin:center}.enhanced .art img{display:block}.enhanced .art-label{display:none}.travel-caption{position:absolute;bottom:15%;left:50%;transform:translateX(-50%);z-index:120;display:flex;flex-direction:column;gap:12px;align-items:center;padding:12px 24px;text-shadow:0 2px 18px #000;background:radial-gradient(ellipse,#050811a8,transparent 75%)}.travel-caption span{font-size:21px;letter-spacing:.2em}.travel-caption small{font-size:10px;color:var(--gold);letter-spacing:.1em}.journey-controls,.progress{z-index:125}.gallery-heading{z-index:110}.nebula{background:radial-gradient(ellipse at 50% 48%,#8790ac17,transparent 24%),radial-gradient(ellipse at 35% 58%,#3f38644d,transparent 48%),radial-gradient(ellipse at 70% 38%,#244d6138,transparent 50%);transform-origin:50% 48%}@media(max-width:767px){.enhanced .art{top:47%;width:min(84vw,62vh)}.travel-caption{bottom:20%;white-space:nowrap}.travel-caption span{font-size:18px}}
.enhanced .journey{height:650vh}.enhanced .art{width:min(62vw,66vh);top:46%}.enhanced .art::after{content:'';position:absolute;inset:0;border-radius:50%;pointer-events:none;box-shadow:inset -22px -14px 36px #03071588,inset 3px 3px 10px #bcdfff38,0 0 26px #98c9ff29,0 0 65px #639bff10}.enhanced .art img{border-radius:50%;filter:none}.nebula{background:radial-gradient(ellipse at 20% 30%,#18587955,transparent 35%),radial-gradient(ellipse at 70% 65%,#694c8555,transparent 42%),radial-gradient(ellipse at 50% 40%,#c1b5aa14,transparent 18%),radial-gradient(ellipse at 80% 15%,#243f7244,transparent 35%)}.travel-caption{bottom:15%;padding:15px 25px}.travel-caption small:first-child{font-size:8px;letter-spacing:.35em}#all-works-open{margin-top:30px;background:none}#all-works[open]{display:block}.all-works-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:35px}.all-works-grid img{width:100%;display:block}.all-works-grid span{display:block;font-size:12px;margin:14px 0;letter-spacing:.1em}@media(max-width:767px){.enhanced .art{width:78vw;top:43%}.travel-caption{bottom:19%}.all-works-grid{grid-template-columns:repeat(2,1fr);gap:18px}}

/* The film carries the same cosmic palette from entrance to gallery */
body{isolation:isolate}.space-background{position:fixed;inset:0;z-index:-1;pointer-events:none;background:#0b1020 url('../assets/space-motion-poster-v1.jpg') center/cover;transform:scale(1.09);will-change:transform}.space-background video{width:100%;height:100%;object-fit:cover;display:block}.space-background::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at center,#060b1510,transparent 55%),linear-gradient(#05081120,transparent 30%,#05081125)}.hero{mask-image:linear-gradient(to bottom,#000 0%,#000 65%,transparent 100%)}.hero::after{background:linear-gradient(transparent 38%,#05081125 65%,#05081166)}.hero-copy{text-shadow:0 2px 14px #050811}.journey{background:transparent}.stage{background:transparent}.stage canvas{opacity:.3}.nebula{opacity:.12}.film-away #motion{visibility:visible}.film-away .nav{background:linear-gradient(#05081199,transparent)}.gallery-heading{text-shadow:0 2px 14px #000}.journey-controls,.progress{text-shadow:0 2px 8px #000}.arrival{background:transparent}body>footer{background:transparent;margin:0;padding:30px 5%}.travel-caption{background:radial-gradient(ellipse,#050811d9,transparent 75%)}@media(max-width:767px){.space-background video{object-position:57% 50%}.space-background{background-position:57% 50%}.hero{mask-image:linear-gradient(#000 0%,#000 60%,transparent 100%)}}@media(prefers-reduced-motion:reduce){.space-background{transform:none!important}}
@media(max-width:767px){.space-background video{object-position:83% 50%}.space-background{background-position:83% 50%}.space-background::after{background:linear-gradient(#05081140,transparent 35%,#05081135)}}

/* Keep the cosmic environment visible through the last navigation section */
.arrival,body>footer{text-shadow:0 2px 8px #02050d,0 0 22px #02050dcc}.arrival-lead,.destinations p,body>footer span,body>footer>a:last-child{color:#e0dce5}.destinations a{border-top-color:#e4d0a38c;background:radial-gradient(ellipse at 45% 45%,#05081140,transparent 75%)}.destinations small,.destinations span,.arrival .eyebrow,.arrival .text-link{color:#eddaad}.destinations h3{font-size:clamp(19px,1.8vw,22px);letter-spacing:.06em}.destinations a:hover{border-top-color:#f1dfb6}.arrival>h2,.arrival-lead{position:relative}body>footer{border-top-color:#c8b58e55}

/* Stable scroll geometry and lighter mobile compositing */
.enhanced .journey{height:650svh}.stage{min-height:100svh}
body.modal-open{position:fixed;width:100%;overflow:hidden}
@media(max-width:767px){
 .enhanced .art{will-change:auto}.enhanced .art::after{box-shadow:inset -14px -10px 24px #03071566,inset 2px 2px 8px #bcdfff28}
 .stage canvas,.nebula{display:none}
 .space-background{height:100lvh;bottom:auto;transform:none!important;will-change:auto}
 dialog::backdrop,#all-works::backdrop{backdrop-filter:none}
 #viewer .close{backdrop-filter:none;background:#091323e8}
}
@media(prefers-reduced-motion:reduce){.travel-caption{display:none}}

/* Upward Safari swipes must not resize the sticky journey or scroll its clipping box */
.enhanced .journey{height:calc(var(--scene-height,100svh) * 6.5);overflow-anchor:none}
.enhanced .stage{height:var(--scene-height,100svh);min-height:var(--scene-height,100svh);overflow:clip}
@media(max-width:767px){html{scroll-behavior:auto;overflow-anchor:none}.hero{height:var(--scene-height,100svh)}.space-background{height:calc(var(--scene-height,100svh) + 160px)}}
/* A single edge-to-edge opening with a gradual transition into deep space */
.hero{height:clamp(520px,56.25vw,var(--scene-height,100svh));min-height:0;background:none;mask-image:none;-webkit-mask-image:none;isolation:isolate}
.hero video{position:absolute;inset:0;width:100%;height:100%;mask-image:linear-gradient(to bottom,#000 0%,#000 55%,#000f 60%,#000e 68%,#000b 76%,#0007 84%,#0003 92%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 55%,#000f 60%,#000e 68%,#000b 76%,#0007 84%,#0003 92%,transparent 100%)}
.hero::before{content:none}
.hero video{z-index:-1;display:block;object-fit:cover;object-position:center;aspect-ratio:auto}
.hero::after{z-index:0;pointer-events:none;background:linear-gradient(transparent 40%,#05081120 65%,transparent 100%)}
.hero-copy{z-index:1;bottom:7%;text-shadow:0 2px 14px #020510,0 0 28px #020510}
@media(max-width:767px) and (orientation:portrait){
 .hero{height:clamp(520px,calc(var(--scene-height,100svh) * .78),680px);min-height:0}
 .hero-copy{bottom:8%}
}
@media(max-height:500px) and (orientation:landscape){.hero{height:var(--scene-height,100svh);min-height:0}}
