:root{--ink:#800020;--gold:#e2c88f;--night:#17140f;--paper:#f4ebda;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--night);color:var(--paper);font-family:'DM Sans',sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:none;border:0}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid currentColor;outline-offset:7px}h1,h2,h3,p{margin:0}h2,h3{font-family:'Cormorant Garamond',serif;font-weight:400}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.skip{position:fixed;top:-100px;left:20px;z-index:100;background:var(--ink);padding:14px}.skip:focus{top:15px}.site-nav{position:absolute;inset:0 0 auto;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:28px 5vw;color:var(--ink);border-bottom:1px solid #80002025}.wordmark{font-family:'Cormorant Garamond',serif;font-size:34px;line-height:1}.wordmark span{display:block;font-family:'DM Sans',sans-serif;font-size:8px;letter-spacing:.24em;margin-top:8px}.site-nav nav{display:flex;align-items:center;gap:36px;font-size:11px}.site-nav nav a span{margin-left:20px}.site-nav button{font-size:10px;border:1px solid #80002055;border-radius:100px;padding:10px 15px}.hero{position:relative;height:100svh;min-height:640px;overflow:hidden;color:var(--ink);background:#F4E8C1}.hero-fallback{position:absolute;inset:0;background:linear-gradient(135deg,#fbf4e1,#F4E8C1);display:grid;place-items:center}.hero-fallback span{font-family:'Noto Serif Telugu',serif;font-size:clamp(72px,15vw,202px);transform:translateY(-7%)}#cloth{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity 1s}.cloth-ready #cloth{opacity:1}.cloth-ready .hero-fallback{visibility:hidden}.hero-topline{position:absolute;top:23%;left:0;right:0;text-align:center;font-size:10px;letter-spacing:.32em}.hero-copy{position:absolute;top:67%;left:0;right:0;text-align:center;font-family:'Cormorant Garamond',serif;font-size:clamp(26px,3vw,43px);line-height:1.05}.hero-copy em{font-weight:400}.hero-bottom{position:absolute;bottom:35px;left:5vw;right:5vw;display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:.06em}.hero-bottom a{display:flex;gap:26px;align-items:center;border-bottom:1px solid #80002077;padding-bottom:12px}.hero-bottom b{font-size:22px;font-weight:400}.hero-number{font-size:9px;letter-spacing:.2em}.collection{position:relative;background:radial-gradient(ellipse at 45% 55%,#45351c 0%,#1d1812 40%,#100f0d 85%)}.gallery-stage{position:relative;min-height:850px;height:100svh;overflow:hidden}.gallery-heading{position:absolute;left:5vw;top:60px;z-index:2}.eyebrow{font-size:9px;letter-spacing:.22em;color:var(--gold)}.gallery-heading h2{font-size:clamp(38px,4vw,60px);margin-top:14px}.gallery-description{font-size:11px;color:#baae98;margin-top:12px}#helix{position:absolute;inset:0;width:100%;height:100%;opacity:0}.helix-ready #helix{opacity:1}.static-art{position:absolute;left:22%;top:26%;width:24%;height:58%;display:flex;justify-content:center}.static-art img{max-width:100%;height:100%;object-fit:contain}.helix-ready .static-art{visibility:hidden}.art-info{position:absolute;left:65%;top:44%;width:28%;max-width:370px;padding:28px;background:#fff4da05;border:1px solid #e2c88f22;backdrop-filter:blur(18px);border-radius:2px;z-index:3}.art-info h3{font-size:42px;line-height:1.05;margin:18px 0 14px}.art-info>p:not(.eyebrow){font-size:12px;line-height:1.8;color:#c1b5a0}dl{display:flex;gap:38px;margin:24px 0}dt{font-size:8px;letter-spacing:.18em;text-transform:uppercase;color:#a6987f}dd{margin:8px 0 0;font-size:11px}.art-link{font-size:11px;display:flex;justify-content:space-between;width:100%;padding:16px 0 5px;border-top:1px solid #e2c88f33}.art-link span{color:var(--gold)}.gallery-controls{position:absolute;bottom:38px;left:5vw;display:flex;gap:10px;z-index:4}.gallery-controls button{border:1px solid #e2c88f33;border-radius:50%;width:44px;height:44px;font-size:10px}.gallery-controls button[aria-current=true]{background:var(--gold);color:var(--night)}.gallery-scroll{position:absolute;bottom:50px;right:5vw;font-size:8px;letter-spacing:.16em;color:#b7a789}footer{text-align:center;padding:100px 20px 28px;background:#211b13}footer>span{font-family:'Noto Serif Telugu',serif;color:var(--gold);font-size:35px}footer h2{font-size:clamp(42px,5vw,72px);line-height:1.05;margin:35px 0}footer>a{font-size:11px;border-bottom:1px solid #b7a789;padding-bottom:10px}footer>p{font-size:9px;letter-spacing:.04em;color:#b7a789;margin-top:90px}dialog{border:1px solid #a58d5d;background:#17140f;color:var(--paper);padding:25px;max-width:min(900px,94vw);max-height:94svh}dialog::backdrop{background:#000c;backdrop-filter:blur(8px)}dialog img{display:block;margin:auto;max-height:68svh;max-width:100%;object-fit:contain}dialog>button{display:block;margin:0 0 20px auto;font-size:12px}dialog h2{font-size:32px;margin:15px 0 7px}dialog p{font-size:11px;color:#c1b5a0}
@media(max-width:700px){.site-nav{padding:22px 6vw}.site-nav nav{gap:14px}.site-nav nav a{font-size:10px}.site-nav nav a span{display:none}.wordmark{font-size:29px}.hero{min-height:600px}.hero-topline{top:25%;font-size:8px}.hero-copy{top:63%;font-size:30px}.hero-bottom{left:6vw;right:6vw;bottom:28px}.hero-bottom>span{display:none}.hero-bottom a{margin:auto}.gallery-stage{min-height:850px}.gallery-heading{top:35px;left:6vw}.gallery-heading h2{font-size:40px}.art-info{top:auto;bottom:90px;left:6vw;width:88%;max-width:none;padding:18px 22px}.art-info h3{font-size:29px;margin:9px 0}
.featured-scroll .art-info h3{max-width:calc(100% - 150px);overflow-wrap:anywhere}.art-info dl{position:absolute;right:22px;top:14px;gap:16px}.art-info>p:not(.eyebrow){max-width:65%;font-size:10px}.art-link{margin-top:12px;padding-top:12px}.static-art{top:20%;left:24%;width:52%;height:43%}.gallery-controls{bottom:25px;left:6vw}.gallery-scroll{bottom:42px;right:6vw;font-size:7px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Scroll-driven fade into the dark collection, independent of the cloth shader. */
.hero::after{content:'';position:absolute;inset:0;background:#17140f;opacity:var(--veil,0);pointer-events:none;z-index:5}

/* Hero pigment and caption follow the revised raw silk reference. */
.hero{color:#5C1414}.hero-copy p{max-width:600px;padding:0 20px;margin:auto}.hero-copy em{font-style:italic}

/* Smaller calligraphy leaves a quieter interval above the caption. */
.hero-copy{top:61%;font-size:clamp(23px,2.5vw,35px)}
@media(max-width:700px){.hero-copy{top:59%;font-size:25px}.hero-copy p{max-width:310px;line-height:1.25}}

/* Curtain stage: semantic fallback and scroll invitation, with wall copy in 3D. */
.hero::after{display:none}.hero-topline{top:18%;font-size:9px}
.hero-intro{position:absolute;inset:44% 0 auto;text-align:center;pointer-events:none}
.hero-intro p{font:italic 46px 'Cormorant Garamond',serif}.hero-intro span{display:block;margin-top:22px;font-size:8px;letter-spacing:.24em}
.hero-fallback{display:flex;flex-direction:column;justify-content:center;gap:20px;background:#e9dfcd}
.hero-fallback img{max-height:42%;max-width:65%;border:8px solid #735b38;object-fit:contain}
.hero-fallback span{font-size:58px;transform:none;line-height:1.4}.hero-fallback em{font:italic 25px 'Cormorant Garamond',serif}
body:not(.cloth-ready) .hero-intro{display:none}
@media(max-width:700px){.hero-intro p{font-size:36px}.hero-fallback em{font-size:20px}.hero-topline{top:17%}}
/* Pin wrappers can retain their old inline width during an orientation refresh. */
.hero,.gallery-stage,.pin-spacer{max-width:100vw}

/* Branded progressive fallback; the supplied stage and curtain motion are unchanged. */
.hero-fallback{gap:0;background:radial-gradient(ellipse at 50% 42%,#fffdf7 0%,#f3ecdf 65%,#e9dfcd 100%);color:#641e28}
.hero-fallback .loading-mark{width:150px;height:auto;max-width:40vw;max-height:none;border:0;margin-bottom:22px;object-fit:contain}
.loading-wordmark{font:500 34px/1.1 'Cormorant Garamond',serif;letter-spacing:.04em}
.hero-fallback em{font:italic 22px/1.5 'Cormorant Garamond',serif;margin-top:14px;color:#786552}
.loading-rule{position:relative;width:100px;height:1px;background:#b4915440;margin-top:30px;overflow:hidden}
.loading-rule::after{content:'';position:absolute;inset:0;background:#b49154;transform:scaleX(.25);transform-origin:left}
.hero-loading .loading-rule::after{animation:loading-brass 2s ease-in-out infinite}
.loading-status{visibility:hidden;margin-top:18px;font:10px/1.4 'DM Sans',sans-serif;letter-spacing:.16em;color:#786552}
.hero-loading .loading-status{visibility:visible}
body:not(.cloth-ready) .hero-topline{visibility:hidden}
.site-nav{border-bottom:0}
.site-nav nav{position:fixed;top:22px;right:5vw;padding:10px 16px;background:transparent;border:0;color:var(--ink);z-index:20}
@keyframes loading-brass{0%{transform:translateX(-100%) scaleX(.35)}100%{transform:translateX(100%) scaleX(.35)}}
@media(max-width:700px){.hero-fallback .loading-mark{width:120px}.loading-wordmark{font-size:30px}.hero-fallback em{font-size:20px}.site-nav nav{gap:12px;right:6vw;top:14px;padding:6px 8px}.site-nav nav a{min-height:44px;display:flex;align-items:center}.site-nav button{padding:10px}.wordmark{font-size:26px}}
@media(prefers-reduced-motion:reduce){.hero-loading .loading-rule::after{animation:none}}
/* On phones, dock below the scene rather than covering the centred picture lamp. */
@media(max-width:700px){.site-nav nav{top:auto;bottom:max(14px,env(safe-area-inset-bottom));right:6vw;left:6vw;justify-content:center}.hero-bottom{bottom:94px}.gallery-controls{bottom:80px}.gallery-scroll{bottom:86px}}
@media(max-width:700px){.art-info{bottom:150px}footer{padding-bottom:100px}}

/* Anchored text links without a panel; contrast follows the section beneath them. */
.site-nav nav.over-dark{color:var(--paper)}
.site-nav nav button{border-color:currentColor}

/* Keep the complete hero inside short browser viewports and clear the fixed links. */
.hero{min-height:0}
@media(max-width:700px){.hero-bottom{bottom:74px}}
/* Safari's expanded viewport can be taller than the stable, pinned 100svh hero.
   Keep the fixed links above that difference instead of straddling its edge. */
@media(max-width:700px){.site-nav nav{bottom:calc(max(14px,env(safe-area-inset-bottom)) + max(0px,100dvh - 100svh))}}
/* Compose the helix in the real phone viewport, with readable controls below it. */
@media(max-width:1100px),(max-height:600px){.gallery-stage{min-height:0;height:100svh}}
@media(max-width:700px){.featured-scroll .art-info h3{max-width:none;font-size:26px;line-height:1.05}.art-info dl{position:static;margin:8px 0;gap:24px}.art-info>p:not(.eyebrow){max-width:100%;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.art-link{margin-top:8px;padding-top:8px}}
@media(max-width:700px) and (max-height:650px){.gallery-heading h2{font-size:30px}.art-info{padding:12px 16px}.art-info h3{font-size:22px!important}.art-info>p:not(.eyebrow){display:none}.art-info dl{margin:5px 0}.art-info dd{margin-top:3px}.art-link{margin-top:5px;padding-top:5px}}
@media(max-height:600px) and (min-aspect-ratio:1/1){.gallery-heading{top:20px;left:4vw}.gallery-heading h2{font-size:28px}.gallery-description{display:none}.art-info{top:96px;bottom:auto;left:auto;right:4vw;width:36%;max-height:calc(100svh - 176px);overflow:auto;padding:12px 16px}.art-info h3{font-size:24px;line-height:1.05;margin:6px 0}.art-info dl{position:static;margin:8px 0;gap:16px}.art-info>p:not(.eyebrow){font-size:10px;line-height:1.5}.gallery-controls{bottom:20px;left:4vw}.gallery-scroll{display:none}}

/* Tablets share the helix safe-region composition; artwork cannot sit behind the heading/card. */
@media(min-width:701px) and (max-width:1100px) and (max-aspect-ratio:1/1){.gallery-heading{top:35px}.gallery-heading h2{font-size:40px}.art-info{top:auto;bottom:110px;left:6vw;width:88%;max-width:none;padding:18px 22px}.featured-scroll .art-info h3{max-width:none;font-size:29px;margin:9px 0}.art-info dl{position:static;margin:8px 0;gap:24px}.art-info>p:not(.eyebrow){max-width:100%}.gallery-controls{bottom:25px;left:6vw}.gallery-scroll{bottom:42px;right:6vw}}
@media(min-width:701px) and (max-width:1100px) and (min-aspect-ratio:1/1){.gallery-heading{top:20px;left:4vw}.gallery-heading h2{font-size:28px}.gallery-description{display:none}.art-info{top:96px;bottom:auto;left:auto;right:4vw;width:36%;max-height:calc(100svh - 176px);overflow:auto;padding:12px 16px}.art-info h3{font-size:24px;line-height:1.05;margin:6px 0}.art-info dl{position:static;margin:8px 0;gap:16px}.art-info>p:not(.eyebrow){font-size:10px;line-height:1.5}.gallery-controls{bottom:20px;left:4vw}.gallery-scroll{display:none}}
/* In compact landscape, keep the anchored links beside the helix controls. */
@media(max-width:700px) and (max-height:600px) and (min-aspect-ratio:1/1){.site-nav nav{left:auto;right:4vw;bottom:calc(12px + max(0px,100dvh - 100svh));gap:8px;padding:0;font-size:9px}.site-nav nav a{min-height:40px}.site-nav button{font-size:8px;padding:8px}}

/* Give mobile featured paintings more space without covering them with metadata. */
@media(max-width:700px) and (max-aspect-ratio:1/1){
 .many-featured .gallery-controls{display:grid;grid-template-columns:repeat(5,44px);gap:8px;max-width:88vw}
 .many-featured .art-info{bottom:200px!important}
 .many-featured .gallery-scroll{display:none}
}
@media(max-width:700px) and (max-aspect-ratio:1/1){
 .gallery-heading{top:28px}.gallery-heading h2{font-size:34px;margin-top:10px}.gallery-description{margin-top:8px;font-size:10px}
 .art-info{bottom:140px;padding:12px 16px}.featured-scroll .art-info h3{font-size:25px;margin:7px 0}
 .art-info dl{margin:6px 0;gap:24px}.art-info dt{font-size:7px}.art-info dd{margin-top:3px;font-size:10px}
 .art-link{margin-top:6px;padding-top:6px}.art-info>p:not(.eyebrow){display:none}
}

/* Phone portrait prioritises the painting; details remain available on tap. */
@media(max-width:700px) and (max-aspect-ratio:1/1){
 .gallery-heading{top:20px;left:6vw;right:6vw}
 .gallery-heading h2{font-size:26px;line-height:1.05;margin-top:7px}
 .gallery-heading .eyebrow{font-size:8px}
 .gallery-description{display:none}
 .art-info{bottom:132px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:0;border:0;background:transparent;backdrop-filter:none}
 .art-info #view-label,.art-info dl,.art-info>p:not(.eyebrow){display:none}
 .featured-scroll .art-info h3,.art-info h3{font-size:22px!important;line-height:1.1;margin:0;max-width:none;overflow-wrap:anywhere}
 .art-info .art-link{width:auto;min-height:44px;gap:12px;margin:0;padding:0;border:0;font-size:11px;white-space:nowrap}
 .gallery-scroll{display:none}
}

.dialog-link{display:inline-block;margin-top:14px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);border-bottom:1px solid #e2c88f66;padding-bottom:4px}
