/* North and west India: seventeen distinct architectural, textile and celebration compositions.
   Image areas never carry essential text. Every reading surface sets its own paper and ink. */
.heritage-stage .ni-copy{position:relative;color:var(--ni-ink,#30291f);background:var(--ni-paper,#fff8e8);z-index:2;overflow-wrap:anywhere}
.heritage-stage .ni-copy strong{font-size:calc(var(--u)*7.2);line-height:1.08;margin:calc(var(--u)*3) 0;letter-spacing:calc(var(--u)*-.1);color:inherit}
.heritage-stage .ni-copy strong i{font-size:.48em;line-height:1.6;letter-spacing:0}
.heritage-stage .ni-copy small{display:block;font-family:Montserrat,Arial,sans-serif;font-size:calc(var(--u)*1.65);letter-spacing:calc(var(--u)*.24);line-height:1.6;color:inherit}
.heritage-stage .ni-copy time{font-size:calc(var(--u)*2.65);margin:calc(var(--u)*3) 0 calc(var(--u)*1.5);line-height:1.4;color:inherit}
.heritage-stage .ni-venue{display:block;font-size:calc(var(--u)*2.3);line-height:1.5;color:inherit}
.heritage-stage .ni-rule{height:1px;width:calc(var(--u)*23);background:currentColor;display:block;margin:calc(var(--u)*4) auto}
.heritage-stage :is([class^="ni-"]){box-sizing:border-box}
/* 17 / Udaipur: a tall jharokha window above its carved inscription plinth. */
.stage-udaipur-jharokha{--ni-paper:#fff5df;--ni-ink:#3e3626;background:#d9c49d;padding:calc(var(--u)*8) calc(var(--u)*14) calc(var(--u)*9)}
.ni-jharokha-columns{position:absolute!important;inset:calc(var(--u)*6);border:1px solid #7e7352;pointer-events:none;display:flex;justify-content:space-between}
.ni-jharokha-columns span{width:calc(var(--u)*5);border-inline:calc(var(--u)*.8) double #a69368;background:linear-gradient(90deg,#c8b58c,#f4e5bf,#c8b58c);margin:calc(var(--u)*22) calc(var(--u)*2) calc(var(--u)*4)}
.ni-jharokha-window{height:calc(var(--u)*70);border:calc(var(--u)*1.7) solid #f8efd8;outline:1px solid #9a8053;border-radius:49% 49% 4% 4%;overflow:hidden;box-shadow:0 calc(var(--u)*1) calc(var(--u)*3) #43331d22}
.ni-jharokha-window:after{content:'';position:absolute;inset:calc(var(--u)*2);border:1px solid #f8efd8;border-radius:49% 49% 1% 1%;pointer-events:none}
.ni-jharokha-plinth{padding:calc(var(--u)*5) calc(var(--u)*3);margin:calc(var(--u)*-1) calc(var(--u)*-4) 0;border-block:calc(var(--u)*1.5) double #b79758}
.ni-jharokha-plinth strong{font-size:calc(var(--u)*6.8)!important}.ni-jharokha-plinth .ni-rule{margin:calc(var(--u)*2.5) auto}
/* 18 / Jaipur: a stepped facade, narrow pink side label, and a broad balcony. */
.stage-jaipur-pinkcity{--ni-paper:#ffe9d6;--ni-ink:#742b31;background:#be665e;padding:calc(var(--u)*7)}
.ni-jaipur-crown{display:flex;gap:calc(var(--u)*3);justify-content:space-around;height:calc(var(--u)*13);align-items:end}
.ni-jaipur-crown b{display:block;width:15%;height:75%;border-radius:50% 50% 0 0;background:#efb6a0;border:1px solid #873f37;border-bottom:0}.ni-jaipur-crown b:nth-child(3){height:100%}
.ni-jaipur-facade{display:grid;grid-template-columns:1fr 1.45fr;gap:calc(var(--u)*3);border:calc(var(--u)*2) solid #efb6a0;padding:calc(var(--u)*3);height:calc(var(--u)*62);background:#a04e4c}
.ni-jaipur-side{padding:calc(var(--u)*4) calc(var(--u)*2);text-align:left}.ni-jaipur-side>span:first-child{font-size:calc(var(--u)*4.6);line-height:1.08;letter-spacing:calc(var(--u)*.3);display:block}
.ni-jaipur-rosette{display:block;width:calc(var(--u)*17);height:calc(var(--u)*17);background:repeating-conic-gradient(#b65e51 0deg 20deg,#edb19a 20deg 40deg);border-radius:50%;margin-top:calc(var(--u)*4);box-shadow:inset 0 0 0 calc(var(--u)*4) #efb6a0}
.ni-jaipur-photo{height:100%;overflow:hidden;border-radius:50% 50% 0 0;border:calc(var(--u)*1) solid #ffe6ca}
.ni-jaipur-balcony{padding:calc(var(--u)*5);border-bottom:calc(var(--u)*2.5) solid #7c3440}.ni-jaipur-balcony strong{font-size:calc(var(--u)*6.7)!important}.ni-jaipur-balcony strong i{display:inline!important}
.ni-jaipur-address{display:grid;grid-template-columns:1fr 1fr;gap:calc(var(--u)*3);align-items:center;border-top:1px solid #c88b77;margin-top:calc(var(--u)*4);padding-top:calc(var(--u)*2)}.ni-jaipur-address time{font-size:calc(var(--u)*2.3)!important;margin:0!important}
/* 19 / Jodhpur: an elevated photograph, blue terraces and an offset paper note. */
.stage-jodhpur-bluehour{--ni-paper:#fff3d8;--ni-ink:#20354d;background:#123e70;padding:calc(var(--u)*9) calc(var(--u)*8) calc(var(--u)*8)}
.ni-blue-terraces{position:absolute!important;inset:0;overflow:hidden;pointer-events:none}.ni-blue-terraces span{position:absolute;bottom:0;left:-10%;height:57%;width:48%;background:#226599;box-shadow:inset 0 calc(var(--u)*1.8) #5990b2}.ni-blue-terraces span:nth-child(2){height:71%;left:33%;width:28%;background:#397ca7}.ni-blue-terraces span:nth-child(3){height:85%;left:72%;background:#245780}
.ni-blue-photo{width:76%;height:calc(var(--u)*69);border:calc(var(--u)*1.8) solid #cbd3cb;box-shadow:calc(var(--u)*3) calc(var(--u)*3) #102e4f;overflow:hidden}
.ni-blue-note{width:86%;margin:calc(var(--u)*-7) 0 0 auto;padding:calc(var(--u)*6) calc(var(--u)*5);border-left:calc(var(--u)*2) solid #c69549;text-align:left}
.ni-blue-note strong{font-size:calc(var(--u)*6.9)!important}.ni-blue-note strong i{display:inline!important}.ni-blue-note>span:not(.ni-venue){font-style:italic;font-size:calc(var(--u)*2.4)}
.ni-blue-moon{position:absolute;top:calc(var(--u)*5);right:calc(var(--u)*7);height:calc(var(--u)*12);width:calc(var(--u)*12);border-radius:50%;background:#f2dfb4;box-shadow:0 0 calc(var(--u)*5) #f2dfb433}
/* 20 / Sheesh Mahal: a suspended mirror mosaic and an octagonal portrait. */
.stage-sheesh-mahal{--ni-paper:#142b32;--ni-ink:#fff1cf;background:repeating-conic-gradient(from 45deg,#1c3d44 0 25%,#26484e 0 50%) 0/ calc(var(--u)*12) calc(var(--u)*12);padding:calc(var(--u)*7)}
.ni-mirror-ceiling{display:flex;justify-content:space-around;height:calc(var(--u)*12);gap:calc(var(--u)*2);align-items:center}.ni-mirror-ceiling span{display:block;width:calc(var(--u)*7);height:calc(var(--u)*7);transform:rotate(45deg);border:calc(var(--u)*.7) solid #bdad77;background:linear-gradient(135deg,#99bcc3,#eff7e6,#6f929d);box-shadow:0 0 calc(var(--u)*3) #d1e3d722}.ni-mirror-ceiling span:nth-child(2n){height:calc(var(--u)*10);width:calc(var(--u)*10)}
.ni-mirror-title{padding:calc(var(--u)*2);border-block:1px solid #b8a47e;margin-bottom:calc(var(--u)*4)}
.ni-mirror-portrait{height:calc(var(--u)*66);width:92%;margin:auto;clip-path:polygon(20% 0,80% 0,100% 20%,100% 80%,80% 100%,20% 100%,0 80%,0 20%);padding:calc(var(--u)*1.6);background:#d2bc8e}.ni-mirror-portrait img{clip-path:polygon(20% 0,80% 0,100% 20%,100% 80%,80% 100%,20% 100%,0 80%,0 20%)}
.ni-mirror-plaque{margin:calc(var(--u)*4) auto 0;padding:calc(var(--u)*3) calc(var(--u)*4);border:1px solid #c8b782}.ni-mirror-plaque strong{font-size:calc(var(--u)*6.2)!important}.ni-mirror-plaque strong i{display:inline!important}.ni-mirror-base{height:calc(var(--u)*4);background:repeating-linear-gradient(135deg,#c8b782 0 calc(var(--u)*.5),transparent calc(var(--u)*.5) calc(var(--u)*2));margin:calc(var(--u)*3) calc(var(--u)*6) 0}
/* 21 / Pichwai: floating lotuses, a text panel, and a circular portrait over the pond. */
.stage-pichwai-lotus{--ni-paper:#eff0d8;--ni-ink:#264135;background:radial-gradient(ellipse at 25% 20%,#759179 0 6%,transparent 6.3%),radial-gradient(ellipse at 75% 80%,#527e67 0 7%,transparent 7.3%),#294d3e;padding:calc(var(--u)*4) calc(var(--u)*10)}
.ni-lotus-pond{height:calc(var(--u)*25);width:100%}.ni-lotus-pond svg{height:100%;width:100%;display:block}
.ni-lotus-label{padding:calc(var(--u)*4) calc(var(--u)*3);border-radius:calc(var(--u)*25) calc(var(--u)*25) 0 0;border:1px solid #b4ba8d}.ni-lotus-label strong{font-size:calc(var(--u)*6.6)!important}.ni-lotus-label strong i{display:inline!important}
.ni-lotus-medallion{width:calc(var(--u)*60);height:calc(var(--u)*60);border-radius:50%;border:calc(var(--u)*1.6) double #d9bd80;padding:calc(var(--u)*2);background:#1f4134;margin:calc(var(--u)*-1) auto calc(var(--u)*2);z-index:3}.ni-lotus-medallion img{border-radius:50%}
.ni-lotus-location{padding:calc(var(--u)*2);border-radius:0 0 calc(var(--u)*3) calc(var(--u)*3)}.ni-lotus-location small{margin-top:calc(var(--u)*1)}
/* 22 / Phad: a narrative scroll with a wide painted scene and a caption block. */
.stage-phad-procession{--ni-paper:#f6dfb7;--ni-ink:#673326;background:#85432e;padding:calc(var(--u)*8) calc(var(--u)*7)}
.ni-scroll-rod{height:calc(var(--u)*3);width:100%;background:linear-gradient(#523022,#c39162,#623b29);border-radius:calc(var(--u)*2);box-shadow:0 calc(var(--u)*1) calc(var(--u)*1.5) #3c1c1844}
.ni-phad-scroll{margin:0 calc(var(--u)*3);background:#f6dfb7;border-inline:calc(var(--u)*2) solid #bb693d;outline:1px solid #d7a267;padding:calc(var(--u)*4) calc(var(--u)*3)}
.ni-phad-heading{padding:calc(var(--u)*2) calc(var(--u)*3)}.ni-phad-heading strong{font-size:calc(var(--u)*6.5)!important;margin:calc(var(--u)*1) 0!important}.ni-phad-heading>i{display:block;font-size:calc(var(--u)*2.5)}
.ni-phad-picture{height:calc(var(--u)*49);margin:calc(var(--u)*3) calc(var(--u)*-3);border-block:calc(var(--u)*1.5) solid #a4502e;position:relative}.ni-phad-picture:before,.ni-phad-picture:after{content:'';position:absolute;inset:calc(var(--u)*-2.5) 0 auto;height:calc(var(--u)*1);background:repeating-linear-gradient(90deg,#a4502e 0 calc(var(--u)*3),#e1b674 calc(var(--u)*3) calc(var(--u)*4));z-index:1}.ni-phad-picture:after{top:auto;bottom:calc(var(--u)*-2.5)}
.ni-phad-caption{padding:calc(var(--u)*3) calc(var(--u)*2)}.ni-phad-caption>span:not(.ni-venue){font-size:calc(var(--u)*3);font-style:italic}.ni-phad-caption time{margin-top:calc(var(--u)*2)!important}.ni-scroll-bottom{margin-top:0}
/* 23 / Bandhani: a tied-cloth field and a paper tag crossing a lozenge photograph. */
.stage-bandhani-knot{--ni-paper:#fff1cc;--ni-ink:#6d2430;background:radial-gradient(circle,#f6c86b 0 calc(var(--u)*.5),transparent calc(var(--u)*.6)) 0 0/calc(var(--u)*5) calc(var(--u)*5),#962f40;padding:calc(var(--u)*8)}
.ni-bandhani-fold{position:absolute!important;inset:0;background:linear-gradient(65deg,transparent 45%,#55192977 45.2%,transparent 60%),linear-gradient(-65deg,transparent 60%,#ce615a55 60.2%,transparent 80%);pointer-events:none}
.ni-bandhani-ribbon{padding:calc(var(--u)*2);margin-bottom:calc(var(--u)*5);transform:rotate(-3deg);border-block:1px solid #c9954f}
.ni-bandhani-photo{height:calc(var(--u)*63);width:78%;margin:auto;border-radius:50% 50% 30% 30%;padding:calc(var(--u)*2);border:calc(var(--u)*1) solid #efc876;background:#d39550;overflow:hidden}.ni-bandhani-photo img{border-radius:50% 50% 30% 30%}
.ni-bandhani-card{padding:calc(var(--u)*7) calc(var(--u)*5) calc(var(--u)*5);margin-top:calc(var(--u)*-4);border-radius:calc(var(--u)*2);box-shadow:calc(var(--u)*1) calc(var(--u)*2) #4f192a55}.ni-bandhani-card strong{font-size:calc(var(--u)*6.8)!important}.ni-bandhani-card strong i{display:inline!important}
.ni-bandhani-thread{position:absolute;top:calc(var(--u)*-2.5);left:calc(50% - var(--u)*9);width:calc(var(--u)*18);height:calc(var(--u)*9);border:calc(var(--u)*.8) solid #b67935;border-radius:50%;transform:rotate(-18deg);background:transparent}.ni-bandhani-thread:after{content:'';position:absolute;inset:calc(var(--u)*-1);border:calc(var(--u)*.8) solid #b67935;border-radius:50%;transform:rotate(45deg)}
/* 24 / Kutch: a geometric embroidered mat, mirrors and a sideways-offset label. */
.stage-kutch-mirrorwork{--ni-paper:#fcdec0;--ni-ink:#57213f;background:#482342;padding:calc(var(--u)*7)}
.ni-kutch-top{padding:calc(var(--u)*3);border-block:calc(var(--u)*.8) solid #cc854e;text-align:left}.ni-kutch-top>span{font-size:calc(var(--u)*4);letter-spacing:calc(var(--u)*.4);display:block}.ni-kutch-top small{margin-top:calc(var(--u)*1)}
.ni-kutch-frame{height:calc(var(--u)*67);margin-top:calc(var(--u)*6);padding:calc(var(--u)*8);background:repeating-conic-gradient(from 45deg,#cc674a 0deg 90deg,#e5b658 90deg 180deg,#37756a 180deg 270deg,#612b52 270deg 360deg) 0 0/calc(var(--u)*12) calc(var(--u)*12);border:calc(var(--u)*1) solid #e5b658}.ni-kutch-frame img{border:calc(var(--u)*.8) solid #ffe6bc}
.ni-kutch-mirror{position:absolute;width:calc(var(--u)*5);height:calc(var(--u)*5);border-radius:50%;border:calc(var(--u)*.8) solid #ad7b41;background:linear-gradient(135deg,#86a5ad,#eff6eb,#82979f);z-index:1}.mirror-a{top:calc(var(--u)*2);left:calc(50% - var(--u)*2.5)}.mirror-b{bottom:calc(var(--u)*2);left:calc(50% - var(--u)*2.5)}.mirror-c{left:calc(var(--u)*1.8);top:45%}.mirror-d{right:calc(var(--u)*1.8);top:45%}
.ni-kutch-label{padding:calc(var(--u)*4);margin:calc(var(--u)*-3) calc(var(--u)*-2) 0 calc(var(--u)*7);text-align:left;box-shadow:calc(var(--u)*1.5) calc(var(--u)*1.5) #26152c}.ni-kutch-label strong{font-size:calc(var(--u)*6.6)!important}.ni-kutch-label strong i{display:inline!important}.ni-kutch-meta{border-top:1px solid #c48e75;padding-top:calc(var(--u)*1)}
/* 25 / Garba: a spinning ring of decorative sticks around a circular photograph. */
.stage-gujarati-garba{--ni-paper:#fff0c8;--ni-ink:#642b28;background:#e5a342;padding:calc(var(--u)*7)}
.ni-garba-heading{padding:calc(var(--u)*2);border-radius:calc(var(--u)*8)}
.ni-garba-circle{width:calc(var(--u)*69);height:calc(var(--u)*69);margin:calc(var(--u)*11) auto calc(var(--u)*9);padding:calc(var(--u)*7);border-radius:50%;background:#963d37;box-shadow:0 0 0 calc(var(--u)*1) #ffdc83,0 0 0 calc(var(--u)*2) #994e30}.ni-garba-circle img{border-radius:50%;border:calc(var(--u)*1.5) solid #ffdc83;position:relative;z-index:1}
.ni-garba-sticks{position:absolute;inset:calc(var(--u)*-5);border:calc(var(--u)*1.2) dotted #85352d;border-radius:50%}.ni-garba-sticks b{position:absolute;left:49%;top:-4%;width:calc(var(--u)*2);height:calc(var(--u)*12);background:repeating-linear-gradient(#286e65 0 calc(var(--u)*3),#f8e2a1 calc(var(--u)*3) calc(var(--u)*4));border-radius:calc(var(--u)*1);transform-origin:50% calc(var(--u)*42)}.ni-garba-sticks b:nth-child(2){transform:rotate(45deg)}.ni-garba-sticks b:nth-child(3){transform:rotate(90deg)}.ni-garba-sticks b:nth-child(4){transform:rotate(135deg)}.ni-garba-sticks b:nth-child(5){transform:rotate(180deg)}.ni-garba-sticks b:nth-child(6){transform:rotate(225deg)}.ni-garba-sticks b:nth-child(7){transform:rotate(270deg)}.ni-garba-sticks b:nth-child(8){transform:rotate(315deg)}
.ni-garba-banner{--ni-paper:#71322e;--ni-ink:#fff1cf;padding:calc(var(--u)*5);margin:0 calc(var(--u)*-7) calc(var(--u)*-7);border-top:calc(var(--u)*1.5) solid #fff0c8}.ni-garba-beat{font-style:italic;display:block;font-size:calc(var(--u)*2.7)}.ni-garba-banner strong{font-size:calc(var(--u)*6.2)!important}.ni-garba-banner strong i{display:inline!important}
/* 26 / Mehendi: a lattice courtyard, fabric canopy and cream handwritten invitation. */
.stage-mehendi-courtyard{--ni-paper:#f4edcd;--ni-ink:#30452a;background:#365438;padding:calc(var(--u)*7) calc(var(--u)*8) calc(var(--u)*8)}
.ni-mehendi-lattice{position:absolute!important;inset:0;background:repeating-linear-gradient(45deg,transparent 0 calc(var(--u)*5),#8eaa5b55 calc(var(--u)*5) calc(var(--u)*5.8)),repeating-linear-gradient(-45deg,transparent 0 calc(var(--u)*5),#8eaa5b55 calc(var(--u)*5) calc(var(--u)*5.8));pointer-events:none}
.ni-mehendi-canopy{display:flex;width:100%;height:calc(var(--u)*11);z-index:2}.ni-mehendi-canopy span{width:20%;border-radius:0 0 50% 50%;background:#a9b376;border:1px solid #d7c889}.ni-mehendi-canopy span:nth-child(even){background:#d7c889}
.ni-mehendi-photo{height:calc(var(--u)*59);width:86%;margin:calc(var(--u)*-3) auto 0;padding:calc(var(--u)*2);border:1px solid #e2d39d;background:#69835a}
.ni-mehendi-letter{padding:calc(var(--u)*5);margin:calc(var(--u)*-4) 0 0;text-align:left;box-shadow:0 calc(var(--u)*2) calc(var(--u)*4) #142d2255}.ni-mehendi-letter em{font-size:calc(var(--u)*5);display:block;margin:calc(var(--u)*2) 0}.ni-mehendi-letter strong{font-size:calc(var(--u)*6.5)!important}.ni-mehendi-letter strong i{display:inline!important}
/* 27 / Haldi: a moving sun disk, offset photo print and bold saffron paper. */
.stage-haldi-sunshine{--ni-paper:#fff6d4;--ni-ink:#70411a;background:#f3c245;padding:calc(var(--u)*7)}
.ni-haldi-sun{position:absolute!important;right:calc(var(--u)*-14);top:calc(var(--u)*4);height:calc(var(--u)*65);width:calc(var(--u)*65);border-radius:50%;background:repeating-conic-gradient(#c98525 0deg 6deg,transparent 6deg 18deg);padding:calc(var(--u)*10)}.ni-haldi-sun span{display:block;width:100%;height:100%;border-radius:50%;background:#ed9e2e}
.ni-haldi-heading{width:55%;padding:calc(var(--u)*3);text-align:left;background:#fff6d4}.ni-haldi-heading>span{display:block;font-family:Montserrat,Arial,sans-serif;font-size:calc(var(--u)*5);font-weight:700;line-height:1.08;letter-spacing:calc(var(--u)*-.1)}
.ni-haldi-photo{width:74%;height:calc(var(--u)*64);background:#fff9e6;padding:calc(var(--u)*2.5) calc(var(--u)*2.5) calc(var(--u)*7);margin:calc(var(--u)*4) 0 0 calc(var(--u)*15);transform:rotate(6deg);box-shadow:calc(var(--u)*1) calc(var(--u)*2) calc(var(--u)*3) #95631944}.ni-haldi-photo small{display:block;font-size:calc(var(--u)*1.5);color:#70411a;line-height:calc(var(--u)*4.5)}
.ni-haldi-paper{--ni-paper:#774021;--ni-ink:#fff4d0;padding:calc(var(--u)*5);margin:calc(var(--u)*-3) calc(var(--u)*6) 0 calc(var(--u)*-2);border-radius:calc(var(--u)*1);text-align:left}.ni-haldi-paper strong{font-size:calc(var(--u)*6.8)!important}.ni-haldi-paper strong i{display:inline!important}
/* 28 / Sangeet: spotlights above a portrait and a solid concert billing panel. */
.stage-sangeet-spotlight{--ni-paper:#241d37;--ni-ink:#fff0cf;background:#171429;padding:calc(var(--u)*7) calc(var(--u)*8) calc(var(--u)*5)}
.ni-sangeet-lights{position:absolute!important;inset:0;overflow:hidden;pointer-events:none}.ni-sangeet-lights span{position:absolute;top:calc(var(--u)*-3);width:calc(var(--u)*36);height:calc(var(--u)*94);left:calc(var(--u)*-8);background:linear-gradient(#d3b98055,transparent);clip-path:polygon(48% 0,52% 0,100% 100%,0 100%);transform:rotate(-22deg);transform-origin:50% 0}.ni-sangeet-lights span+span{left:auto;right:calc(var(--u)*-8);transform:rotate(22deg)}
.ni-sangeet-poster{width:80%;height:calc(var(--u)*59);border-radius:48% 48% 0 0;margin:calc(var(--u)*5) auto 0;overflow:hidden;border:calc(var(--u)*1) solid #a98660}
.ni-sangeet-billing{padding:calc(var(--u)*5) calc(var(--u)*4);margin:calc(var(--u)*-3) 0 0;border-inline:1px solid #a98660}.ni-sangeet-billing em{font-size:calc(var(--u)*8.5);line-height:.98;display:block;color:#f0c77d;margin:calc(var(--u)*3) 0}.ni-sangeet-billing strong{font-size:calc(var(--u)*5.7)!important}.ni-sangeet-billing strong i{display:inline!important}.ni-sangeet-ticket{margin-top:calc(var(--u)*4);border-top:1px dashed #ba9b7a;padding-top:calc(var(--u)*1)}
.ni-sangeet-footlights{height:calc(var(--u)*4);background:radial-gradient(circle,#f2cb7d calc(var(--u)*.5),transparent calc(var(--u)*.8)) 0 0/calc(var(--u)*6) calc(var(--u)*4);margin-top:calc(var(--u)*2)}
/* 29 / Phulkari: a vertical textile strip beside the photograph, and a wide bottom panel. */
.stage-punjabi-phulkari{--ni-paper:#ffddb2;--ni-ink:#6c2b32;background:#9a3747;padding:calc(var(--u)*7)}
.ni-phulkari-top{padding:calc(var(--u)*2);margin-bottom:calc(var(--u)*4);border-bottom:calc(var(--u)*1) solid #cd7e45}
.ni-phulkari-weave{display:grid;grid-template-columns:24% 1fr;gap:calc(var(--u)*3);height:calc(var(--u)*72)}
.ni-phulkari-cloth{height:100%;background:repeating-linear-gradient(45deg,#e4a847 0 calc(var(--u)*2),transparent calc(var(--u)*2) calc(var(--u)*5)),repeating-linear-gradient(-45deg,#d06443 0 calc(var(--u)*2),#7c2844 calc(var(--u)*2) calc(var(--u)*5));border:1px solid #e2a347;display:flex;flex-direction:column;align-items:center;justify-content:space-evenly}.ni-phulkari-cloth span{display:block;width:calc(var(--u)*11);height:calc(var(--u)*11);background:#477967;transform:rotate(45deg);border:calc(var(--u)*2) solid #f1ba62;box-shadow:0 0 0 calc(var(--u)*.5) #913344}
.ni-phulkari-photo{border:calc(var(--u)*1) solid #f2c57d;overflow:hidden}
.ni-phulkari-paper{padding:calc(var(--u)*5);margin:calc(var(--u)*-7) calc(var(--u)*-3) 0 calc(var(--u)*4);box-shadow:calc(var(--u)*1.5) calc(var(--u)*1.5) #782c37}.ni-phulkari-paper strong{font-size:calc(var(--u)*6.7)!important}.ni-phulkari-paper strong i{display:inline!important}
/* 30 / Anand Karaj: quiet ivory, an outlined portico, and an airy family nameplate. */
.stage-anand-karaj{--ni-paper:#fff9e9;--ni-ink:#4a442d;background:#e8dfc7;padding:calc(var(--u)*7) calc(var(--u)*9);border:calc(var(--u)*2) solid #f5efdc}
.ni-anand-heading{padding:calc(var(--u)*3);border-block:1px solid #a89562}.ni-anand-heading>span{display:block;font-style:italic;font-size:calc(var(--u)*3);margin-top:calc(var(--u)*2)}
.ni-anand-portico{height:calc(var(--u)*65);padding:calc(var(--u)*5) calc(var(--u)*7) 0;margin-top:calc(var(--u)*3);overflow:hidden}.ni-anand-portico img{border-radius:50% 50% 0 0;border:calc(var(--u)*1) solid #fff9e9;position:relative;z-index:1}.ni-anand-line{position:absolute;inset:calc(var(--u)*1) calc(var(--u)*2) 0;border:1px solid #9f8b55;border-radius:50% 50% 0 0}.ni-anand-line:before{content:'';position:absolute;inset:calc(var(--u)*1.5);border:1px solid #bdad83;border-radius:50% 50% 0 0}
.ni-anand-nameplate{padding:calc(var(--u)*3) calc(var(--u)*4) calc(var(--u)*4);border-bottom:1px solid #9f8b55}.ni-anand-nameplate strong{font-size:calc(var(--u)*6.4)!important}.ni-anand-nameplate strong i{display:inline!important}.ni-anand-footer{margin-top:calc(var(--u)*4);padding-top:calc(var(--u)*2);border-top:1px solid #c2b796}.ni-anand-footer time{margin-top:0!important}
/* 31 / Kashmir: an oval portrait, drifting chinar leaves and an autumn letter. */
.stage-kashmir-chinar{--ni-paper:#f8ebd4;--ni-ink:#683d2c;background:#bec6ae;padding:calc(var(--u)*8)}
.ni-chinar-leaves{position:absolute;top:calc(var(--u)*4);right:calc(var(--u)*-5);width:calc(var(--u)*70);height:calc(var(--u)*50);z-index:3;pointer-events:none}
.ni-chinar-heading{padding:calc(var(--u)*2);text-align:left;width:72%;margin-bottom:calc(var(--u)*5);border-left:calc(var(--u)*1) solid #a96a40}
.ni-chinar-photo{height:calc(var(--u)*72);width:78%;border-radius:50% 50% 45% 45%;padding:calc(var(--u)*1.8);background:#f8ebd4;box-shadow:calc(var(--u)*2) calc(var(--u)*2) #6a775744;overflow:hidden}.ni-chinar-photo img{border-radius:50% 50% 45% 45%}
.ni-chinar-letter{padding:calc(var(--u)*5);margin:calc(var(--u)*-10) calc(var(--u)*-1) 0 calc(var(--u)*11);text-align:left;border-top:calc(var(--u)*1.5) solid #b97840;box-shadow:0 calc(var(--u)*2) calc(var(--u)*3) #49533d22}.ni-chinar-letter strong{font-size:calc(var(--u)*6.3)!important}.ni-chinar-letter strong i{display:inline!important}.ni-chinar-letter p{font-size:calc(var(--u)*2.4);margin:calc(var(--u)*3) 0;line-height:1.5}
/* 32 / Lucknow: tone-on-tone embroidery, formal names and a wide photo panorama. */
.stage-lucknow-chikankari{--ni-paper:#fffaf0;--ni-ink:#50605c;background:#e6eeea;padding:calc(var(--u)*7)}
.ni-chikan-embroidery{position:absolute!important;inset:calc(var(--u)*3);border:calc(var(--u)*.8) dotted #96b0a4;background:radial-gradient(ellipse at 0 0,transparent 43%,#9bb3a54d 44% 46%,transparent 47%) 0 0/calc(var(--u)*8) calc(var(--u)*8);pointer-events:none}
.ni-chikan-title{padding:calc(var(--u)*5) calc(var(--u)*5) calc(var(--u)*3);border-radius:calc(var(--u)*40) calc(var(--u)*40) 0 0;border-inline:1px solid #b7c8bb}.ni-chikan-title strong{font-size:calc(var(--u)*7)!important}.ni-chikan-title strong i{margin:calc(var(--u)*1) 0}
.ni-chikan-panorama{height:calc(var(--u)*46);margin:calc(var(--u)*2) calc(var(--u)*-2);border:calc(var(--u)*2) solid #fffaf0;box-shadow:0 0 0 1px #a2baad;z-index:3}
.ni-chikan-letter{padding:calc(var(--u)*4);border-inline:1px solid #b7c8bb}.ni-chikan-letter em{font-size:calc(var(--u)*3.5);display:block}.ni-chikan-stitches{display:block;width:calc(var(--u)*37);height:calc(var(--u)*5);border-block:1px dashed #859e90;margin:calc(var(--u)*4) auto}.ni-chikan-letter small{font-size:calc(var(--u)*1.6)!important}
/* 33 / Banaras: silk pleats on one side, a bordered portrait and a narrow woven scroll. */
.stage-banaras-silk{--ni-paper:#f8e5b3;--ni-ink:#613324;background:#782f36;padding:calc(var(--u)*7) calc(var(--u)*7) calc(var(--u)*8) calc(var(--u)*18)}
.ni-banaras-pleats{position:absolute!important;inset:0 auto 0 0;width:calc(var(--u)*15);display:flex;background:#c89d55;border-right:calc(var(--u)*1) solid #e8c789}.ni-banaras-pleats span{height:100%;width:33.333%;background:repeating-linear-gradient(0deg,transparent 0 calc(var(--u)*6),#d7ac60 calc(var(--u)*6) calc(var(--u)*6.8)),linear-gradient(90deg,#8d532e,#ddba71 45%,#96602e);border-right:1px solid #704020}
.ni-banaras-heading{padding:calc(var(--u)*2);border-block:1px solid #b58840;margin-bottom:calc(var(--u)*4)}
.ni-banaras-photo{height:calc(var(--u)*68);padding:calc(var(--u)*3);background:repeating-linear-gradient(45deg,#dcb875 0 calc(var(--u)*1),#a57336 calc(var(--u)*1) calc(var(--u)*2));border:1px solid #eed49c}.ni-banaras-photo img{border:1px solid #f6dca2}
.ni-banaras-scroll{padding:calc(var(--u)*5) calc(var(--u)*4);margin:calc(var(--u)*-3) calc(var(--u)*4) 0 calc(var(--u)*-6);border-block:calc(var(--u)*1.5) double #bd8b44}.ni-banaras-scroll strong{font-size:calc(var(--u)*6.5)!important}.ni-banaras-scroll strong i{display:inline!important}
/* Motion remains on ornament, never on names or the date. Thumbnails are calm until hovered. */
@media(prefers-reduced-motion:no-preference){
 .atelier-hero .ni-mirror-ceiling span,.design-card:hover .ni-mirror-ceiling span{animation:ni-mirror-glow 4s ease-in-out infinite alternate}.ni-mirror-ceiling span:nth-child(2n){animation-delay:-2s}
 .atelier-hero .ni-lotus-pond,.design-card:hover .ni-lotus-pond{animation:ni-lotus-drift 7s ease-in-out infinite alternate}
 .atelier-hero .ni-garba-sticks,.design-card:hover .ni-garba-sticks{animation:ni-garba-turn 65s linear infinite}
 .atelier-hero .ni-haldi-sun,.design-card:hover .ni-haldi-sun{animation:ni-garba-turn 90s linear infinite}
 .atelier-hero .ni-sangeet-lights span,.design-card:hover .ni-sangeet-lights span{animation:ni-stage-light 9s ease-in-out infinite alternate}.atelier-hero .ni-sangeet-lights span+span{animation-direction:alternate-reverse}
 .atelier-hero .ni-chinar-leaves,.design-card:hover .ni-chinar-leaves{animation:ni-chinar-sway 10s ease-in-out infinite alternate}
 .atelier-hero .ni-kutch-mirror,.design-card:hover .ni-kutch-mirror{animation:ni-mirror-glow 5s ease-in-out infinite alternate}
 .atelier-hero .ni-jaipur-rosette,.design-card:hover .ni-jaipur-rosette{animation:ni-garba-turn 100s linear infinite}
 .atelier-hero .ni-bandhani-thread,.design-card:hover .ni-bandhani-thread{animation:ni-thread-sway 8s ease-in-out infinite alternate}
 .atelier-hero .ni-blue-moon,.design-card:hover .ni-blue-moon{animation:ni-moon-glow 6s ease-in-out infinite alternate}
 .atelier-hero .ni-mehendi-canopy,.design-card:hover .ni-mehendi-canopy{animation:ni-canopy-sway 7s ease-in-out infinite alternate;transform-origin:center top}
 .atelier-hero .ni-jharokha-window:after,.atelier-hero .ni-anand-line,.atelier-hero .ni-chikan-embroidery,.atelier-hero .ni-banaras-pleats,.atelier-hero .ni-scroll-rod,.atelier-hero .ni-phulkari-cloth{animation:ni-soft-glow 7s ease-in-out infinite alternate}
}
@keyframes ni-mirror-glow{from{filter:brightness(.9)}to{filter:brightness(1.35)}}
@keyframes ni-lotus-drift{from{transform:translateX(calc(var(--u)*-1))}to{transform:translateX(calc(var(--u)*1))}}
@keyframes ni-garba-turn{to{transform:rotate(360deg)}}
@keyframes ni-stage-light{from{transform:rotate(-17deg);opacity:.5}to{transform:rotate(17deg);opacity:.95}}
@keyframes ni-chinar-sway{from{transform:rotate(-3deg) translateY(0)}to{transform:rotate(4deg) translateY(calc(var(--u)*1.5))}}
@keyframes ni-thread-sway{from{transform:rotate(-18deg)}to{transform:rotate(-10deg)}}
@keyframes ni-moon-glow{from{box-shadow:0 0 calc(var(--u)*3) #f2dfb422}to{box-shadow:0 0 calc(var(--u)*7) #f2dfb477}}
@keyframes ni-canopy-sway{from{transform:rotate(-1deg)}to{transform:rotate(1deg)}}
@keyframes ni-soft-glow{from{filter:brightness(.96)}to{filter:brightness(1.07)}}
