/* Generated textile artwork: detailed craft with room for the content. */
.textile-panel {position:absolute;pointer-events:none;z-index:-1;contain:layout paint;}
.textile-ink {display:block;position:absolute;inset:-10px;background-position:center;background-repeat:no-repeat;transform-origin:center;}
.print-stars .textile-ink,.print-ikat .textile-ink,.print-jaali .textile-ink {background-image:url('../assets/img/textiles/ajrakh-field.webp');background-size:cover;}
.print-stitch .textile-ink {background-image:url('../assets/img/textiles/ajrakh-field.webp');background-size:320px 320px;}
.print-paisley .textile-ink {background-image:url('../assets/img/textiles/paisley-brocade.webp');background-size:contain;}
.print-tree .textile-ink {background-image:url('../assets/img/textiles/parakeet-vine.webp');background-size:contain;}
/* Large, airy print impressions dissolve at the margins instead of framing the page. */
.portrait-mandala {opacity:.24;}
.portrait-mandala::before {background-image:url('../assets/img/textiles/portrait-filigree-v2.webp');}
.heritage-hero::before,.heritage-hero::after {width:280px;height:340px;background:url('../assets/img/textiles/ajrakh-field.webp') center/340px 340px no-repeat;opacity:.23;mask-image:radial-gradient(ellipse closest-side,#000 20%,transparent 100%);}
.heritage-hero::before {left:-170px;top:105px;bottom:auto;}
.heritage-hero::after {right:-180px;top:auto;bottom:45px;}
.heritage-footer {border-top:1px solid #a8865628;}
.heritage-footer::before {content:none;}
/* Textile accents occupy the margins, keeping the reading area clear. */
#work::before,#playground::before {content:none;}
#work>.textile-panel {left:45%;top:36px;width:250px;height:170px;opacity:.14;mask-image:radial-gradient(ellipse,#000,transparent 72%);}
#playground>.textile-panel {left:-155px;top:45px;width:260px;height:280px;opacity:.18;mask-image:radial-gradient(ellipse closest-side,#000 20%,transparent 100%);}
#about>.textile-panel {right:var(--pad-x);top:135px;width:235px;height:175px;opacity:.62;}
#about>.textile-panel .textile-ink {inset:0;}
#about>.textile-panel .textile-ink {background-image:url('../assets/img/textiles/pichwai-lotus-garden.webp');}
#experience>.textile-panel {left:-155px;top:40px;width:260px;height:330px;opacity:.2;mask-image:radial-gradient(ellipse closest-side,#000 20%,transparent 100%);}
#experience>.textile-panel .textile-ink,#board>.textile-panel .textile-ink {inset:0;}
#services>.textile-panel {right:-160px;top:50px;width:270px;height:290px;opacity:.16;mask-image:radial-gradient(ellipse closest-side,#000 20%,transparent 100%);}
#brain>.textile-panel {left:0;right:0;bottom:0;height:72px;opacity:.3;mask-image:linear-gradient(transparent,#000);}
/* The whole vine and both birds have their own column, beside the notebook. */
.writing-inner {grid-template-columns:minmax(0,.95fr) 160px minmax(0,1.05fr);gap:28px;}
.writing-inner>.writing-tree {position:relative;left:auto;top:auto;width:100%;height:440px;opacity:.74;}
.writing-tree .textile-ink {inset:0;}
.writing-notebook {background-image:none;}
.notebook-sign {position:relative;}
#board>.textile-panel {right:-150px;bottom:20px;width:260px;height:310px;opacity:.18;mask-image:radial-gradient(ellipse closest-side,#000 20%,transparent 100%);}
#contact>.textile-panel {right:var(--pad-x);bottom:60px;width:230px;height:345px;opacity:.25;}
#contact>.textile-panel .textile-ink {inset:0;}
.contact::after {content:none;}
/* A small brocade flourish sits below the menu links. */
.menu-textile {width:190px;height:285px;right:16px;bottom:20px;opacity:.24;}
.menu-textile .textile-ink {inset:0;}
.mobile-menu::before {content:none;}
.burger-flower {object-fit:contain;mask-image:radial-gradient(circle,transparent 30%,#000 36%);}
.service-flower,.edge-rosette,.result-flower {background:url('../assets/img/textiles/blockprint-seal.webp') center/contain no-repeat;font-size:0!important;}
.service-flower {display:inline-block;width:27px;height:27px;flex:0 0 27px;}
.edge-rosette {width:27px;height:27px;}
.result-flower {border:0;border-radius:0;}
.xp-chapter {background-image:none;}
.xp-chapter::before {content:'';position:absolute;inset:-8px;background:url('../assets/img/textiles/blockprint-seal.webp') center/contain no-repeat;mask-image:radial-gradient(circle,transparent 35%,#000 40%);opacity:.65;pointer-events:none;}
.music-record span {background:#d0b27e url('../assets/img/textiles/blockprint-seal.webp') center/contain no-repeat;font-size:0;}
.rps-arena {background-image:linear-gradient(#f2e8d4ed,#f2e8d4ed),url('../assets/img/textiles/portrait-filigree-v2.webp');background-size:100% 100%,350px 350px;background-position:center;background-repeat:no-repeat;}

/* Tactile paper sits below the content; its strength stays quiet in both themes. */
.heritage-weave {background:url('../assets/img/textiles/cotton-paper-texture.webp') center/640px repeat;opacity:.25;mix-blend-mode:multiply;}
#work::before,#playground::before,#about::before,#experience::before,#services::before,#writing::before,#testimonials::before,#board::before,#brain::before,#contact::before {content:'';position:absolute;inset:0;width:auto;height:auto;background:url('../assets/img/textiles/cotton-paper-texture.webp') center/640px repeat;mask-image:none;opacity:.14;mix-blend-mode:multiply;pointer-events:none;z-index:-2;}
#contact::before {mix-blend-mode:screen;opacity:.035;}
.board-world {isolation:isolate;}
.board-world::before {content:'';position:absolute;inset:0;background:url('../assets/img/textiles/cotton-paper-texture.webp') center/640px repeat;opacity:.18;mix-blend-mode:multiply;z-index:-1;pointer-events:none;}
.mobile-menu.is-open .menu-textile .textile-ink {animation:menu-pallu-arrive 1.1s cubic-bezier(.16,1,.3,1) both;}
@keyframes menu-pallu-arrive {from {opacity:0;transform:translateY(24px) rotate(7deg);}to {opacity:1;transform:none;}}
/* A few pixels of motion, running only while the section is visible. */
.textile-panel[data-textile-motion] .textile-ink {animation:textile-breathe 20s ease-in-out infinite alternate;animation-play-state:paused;}
.textile-panel[data-textile-motion="woven"] .textile-ink {animation-name:textile-warp;animation-duration:30s;}
.textile-panel.is-textile-visible .textile-ink {animation-play-state:running;}
@keyframes textile-breathe {from {transform:translateY(-4px) rotate(-.6deg);}to {transform:translateY(4px) rotate(.6deg);}}
@keyframes textile-warp {from {transform:translateX(-5px);}to {transform:translateX(5px);}}
:root[data-theme="dark"] .portrait-mandala {opacity:.3;}
:root[data-theme="dark"] .heritage-weave {mix-blend-mode:screen;opacity:.035;}
:root[data-theme="dark"] #work::before,:root[data-theme="dark"] #playground::before,:root[data-theme="dark"] #about::before,:root[data-theme="dark"] #experience::before,:root[data-theme="dark"] #services::before,:root[data-theme="dark"] #writing::before,:root[data-theme="dark"] #testimonials::before,:root[data-theme="dark"] #board::before,:root[data-theme="dark"] #brain::before {mix-blend-mode:screen;opacity:.025;}
:root[data-theme="dark"] #work>.textile-panel,:root[data-theme="dark"] #playground>.textile-panel,:root[data-theme="dark"] #services>.textile-panel {opacity:.08;}
@media(max-width:1100px) {
 #about>.textile-panel {width:170px;height:130px;}
 #contact>.textile-panel {width:150px;height:225px;bottom:48px;right:24px;opacity:.18;}
}
@media(max-width:1000px) {
 #work>.textile-panel {width:140px;height:115px;opacity:.12;}
 .writing-inner {grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;}
 .writing-inner>.writing-tree {display:none;}
 #about>.textile-panel {display:none;}
}
@media(max-width:700px) {.writing-inner {grid-template-columns:1fr;gap:35px;}}
@media(max-width:600px) {
 .heritage-hero::before,.heritage-hero::after {content:none;}
 .portrait-mandala {opacity:.22;}
 #work>.textile-panel {left:auto;right:-30px;top:45px;width:120px;height:140px;opacity:.1;}
 #playground>.textile-panel {width:170px;height:180px;top:38px;left:-105px;opacity:.12;}
 #experience>.textile-panel,#board>.textile-panel {display:none;}
 #services>.textile-panel {width:170px;height:210px;right:-110px;top:45px;opacity:.1;}
 #brain>.textile-panel {height:48px;opacity:.25;}
 #contact>.textile-panel {display:none;}
 .menu-textile {width:135px;height:205px;right:14px;bottom:12px;opacity:.18;}
 .textile-panel[data-textile-motion] .textile-ink {animation-duration:28s;}
}
@media(prefers-reduced-motion:reduce) {.textile-panel .textile-ink,.mobile-menu.is-open .menu-textile .textile-ink {animation:none!important;}}
@media print {.textile-panel {display:none;}}
