/* Disha Sahdev portfolio — shared design system. Edit this file, then run work/build-site.py. */
/* Foundations and internal-page layouts */
@font-face{font-family:Karla;src:url('fonts/karla.woff2') format('woff2');font-style:normal;font-weight:400 700;font-display:swap}
@font-face{font-family:Montserrat;src:url('fonts/montserrat.woff2') format('woff2');font-style:normal;font-weight:400 600;font-display:swap}
@font-face{font-family:Caveat;src:url('fonts/caveat.woff2') format('woff2');font-style:normal;font-weight:400 600;font-display:swap}
:root{--paper:#faf8f3;--stage:#f3f2ef;--ink:#302d28;--muted:#676157;--clay:#965742;--ribbon:#f2f1ed;--panel:#f4f0ea;--reading-width:720px;--heading:'Montserrat',sans-serif;--body:'Karla',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:var(--paper);color:var(--ink);font:17px/1.55 var(--body);font-kerning:normal;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:2px solid var(--clay);outline-offset:5px}img,video{display:block;max-width:100%}h1,h2,h3,h4{font-family:var(--heading);font-weight:500;line-height:1.22;letter-spacing:-.035em;text-wrap:balance}p,h1,h2,h3,h4,figure{margin:0}.shell,.inner{width:min(900px,calc(100% - 80px));margin-inline:auto}.site-header{width:min(900px,calc(100% - 80px));margin:auto;display:flex;justify-content:space-between;align-items:center;gap:30px;padding:34px 0}.site-name{font:500 16px var(--heading);white-space:nowrap}.site-nav{display:flex;gap:23px;flex-wrap:wrap;justify-content:flex-end;font-size:13px}.site-nav a{transition:color .2s}.site-nav a:hover,.site-nav a[aria-current]{color:var(--clay)}.site-main{padding-bottom:110px}.site-footer{width:min(900px,calc(100% - 80px));margin:auto;padding:0 0 45px;display:flex;justify-content:space-between;gap:24px;color:var(--muted);font-size:12px}.site-footer-links{display:flex;gap:20px;flex-wrap:wrap}.site-footer a:hover{color:var(--clay)}.wash{display:none}.u-mark{color:var(--clay)}.u-mark svg,.doodle-underline{display:none}.hand,.bay-eyebrow,.cs-meta,.post-series,.entry-meta,.overview-eyebrow,.next-hand{color:var(--clay);font:500 12px/1.4 var(--body);letter-spacing:.1em;text-transform:uppercase}.page-hero,.cs-hero,.blog-header{padding:95px 0 70px}.page-hand,.contact-hand{margin-bottom:18px}.page-title,.cs-title,.post-title,.contact-title{font-size:clamp(36px,4.1vw,47px);max-width:780px;line-height:1.13;letter-spacing:-.045em}.page-sub,.contact-sub{max-width:650px;font-size:19px;color:var(--muted);line-height:1.5;margin-top:25px}.section{padding:45px 0 80px}.section-head{margin-bottom:36px}.section-h,.block-title{font-size:clamp(29px,3vw,36px);max-width:650px;margin-top:13px;line-height:1.2}.bay{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}.bay-note,.block-sub{color:var(--muted);font-size:16px;max-width:620px}.bay-main{min-width:0}.entry{display:block;color:inherit;transition:transform .25s}.entry:hover{transform:translateY(-2px)}.entry-title{font-size:21px;line-height:1.32}.entry-meta{color:var(--muted);margin-bottom:12px}.entry-desc{font-size:17px;color:var(--muted);margin-top:18px;line-height:1.5}.entry-desc strong,.outcome-highlight{color:var(--ink);font-weight:600}.entry-trail{margin-top:18px;color:var(--clay);font-size:14px;font-weight:500}.entry-arrow{display:inline-flex;transition:transform .25s}.entry:hover .entry-arrow{transform:translate(3px,-3px)}.work-list{display:grid;gap:65px}.work-list .entry{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:42px}.entry-cover{background:var(--stage);aspect-ratio:4/3;border-radius:5px;overflow:hidden;display:flex;align-items:center;justify-content:center}.entry-cover img{width:100%;height:100%;object-fit:cover;transition:transform .45s}.entry:hover .entry-cover img{transform:scale(1.02)}.work-list .entry-body{align-self:center}.series-list{display:grid;gap:36px}.series-list .entry,.bay-main>.entry{padding:4px 0}.more-note{color:var(--muted);font-size:15px;margin-top:32px}
/* About */
.about-grid{display:grid;grid-template-columns:230px minmax(0,1fr);gap:65px;padding-top:20px}.photo-col{position:sticky;top:32px;align-self:start}.photo-frame{background:#fffdf9;padding:8px;box-shadow:0 14px 32px #372b221a;transform:rotate(-1.5deg)}.photo-frame img{width:100%;aspect-ratio:4/5;object-fit:cover}.tape{display:none}.photo-caption{font-size:12px;margin-top:20px;text-align:center;letter-spacing:0;text-transform:none}.content-col .bio p{color:var(--muted);margin-bottom:22px}.content-col .bio p:first-child{font-size:19px;color:var(--ink)}.content-col strong{color:var(--ink);font-weight:600}.about-block{margin-top:76px}.about-callout{margin:46px 0;padding:28px 34px;background:var(--ribbon);border-radius:4px}.about-callout-eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.09em;color:var(--clay);margin-bottom:16px}.about-callout-line{font-size:16px;margin-top:10px}.about-callout-lbl{font-weight:600;color:var(--ink)}.how-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px 38px;margin-top:28px}.how-num{color:var(--clay);font-size:12px}.how-title{font-size:18px;margin:9px 0}.how-body{font-size:16px;color:var(--muted)}.life-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:28px}.life-cell{overflow:hidden;border-radius:3px;background:var(--stage)}.life-cell img{width:100%;height:100%;aspect-ratio:1;object-fit:cover}.life-cell:nth-child(2),.life-cell:nth-child(5){transform:translateY(15px)}
/* Resume */
.resume-dl,.link-arrow{display:inline-flex;align-items:center;gap:10px;margin-top:28px;color:var(--clay);font-weight:500;font-size:15px}.resume-dl svg,.link-arrow svg{width:15px;height:15px}.exp{margin-bottom:46px}.exp-company{display:flex;justify-content:space-between;gap:20px;align-items:baseline;margin-bottom:20px}.exp-name{font:500 22px var(--heading);letter-spacing:-.03em}.exp-loc,.role-period{font-size:14px;color:var(--muted)}.role{margin:0 0 25px}.role-head{display:flex;justify-content:space-between;gap:18px;align-items:baseline}.role-title{font:500 17px var(--heading)}.role-points{padding-left:22px;margin:12px 0 0;color:var(--muted)}.role-points li{margin:8px 0}.tags{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0}.tag{background:var(--ribbon);color:var(--muted);padding:7px 12px;border-radius:3px;font-size:14px}.edu-degree{font:500 19px var(--heading)}.edu-school{color:var(--muted);margin-top:9px}
/* Contact */
.contact{padding:76px 0 90px}.contact-inner{max-width:900px}.contact-title{margin-top:18px}.contact-hand{color:var(--muted)}.contact-sub{max-width:620px;font-size:18px;margin-top:26px}.channels{padding:0;list-style:none;margin:43px 0 0;max-width:650px}.channels li{margin:0}.channel{display:grid;grid-template-columns:150px minmax(0,1fr) 16px;gap:20px;align-items:baseline;padding:13px 0;color:var(--ink)}.channel-label{font:500 16px var(--heading);color:var(--ink)}.channel-value{color:var(--muted);font-size:16px;overflow-wrap:anywhere}.channel-arrow{width:15px;color:var(--muted);transition:transform .25s,color .25s}.channel:hover .channel-value,.channel:hover .channel-arrow{color:var(--clay)}.channel:hover .channel-arrow{transform:translate(3px,-3px)}.contact-foot{margin-top:46px;font-size:14px;letter-spacing:0;text-transform:none;color:var(--muted)}
/* Case studies */
.case-study .cs-hero{padding-bottom:50px}.back-link{display:inline-flex;align-items:center;gap:9px;color:var(--clay);font-size:14px;font-weight:500;margin-bottom:55px}.back-link svg{width:16px;height:16px}.cs-meta{margin-bottom:15px}.cs-title{max-width:780px}.cs-tags{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:24px 0 0}.cs-tag{font-size:12px;color:var(--muted);background:var(--ribbon);padding:7px 11px;border-radius:3px}.overview{background:var(--ribbon);border-radius:5px;padding:34px;margin-bottom:72px}.overview-eyebrow{margin-bottom:18px}.overview-grid,.overview-split{display:grid;grid-template-columns:1fr 1fr;gap:30px}.overview dl{margin:0}.overview dt,.ov-col-h{font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:var(--clay);margin-bottom:8px}.overview dd{margin:0 0 18px}.overview ul{margin:0;padding-left:19px}.overview li{margin:7px 0}.content-area{font-size:17px;color:var(--muted);line-height:1.65}.content-area>h2,.content-area .gated-zone h2{font-size:30px;color:var(--ink);margin:70px 0 20px}.content-area h3{font-size:21px;color:var(--ink);margin:42px 0 14px}.content-area p,.content-area ul,.content-area ol{margin:0 0 22px}.content-area strong{color:var(--ink)}.content-area ul,.content-area ol{padding-left:22px}.content-area li{margin:8px 0}.content-area img,.content-area video{width:100%;height:auto;border-radius:4px}.content-area figure,.content-area .product-grid,.content-area .case-video{margin:38px 0 14px}.content-area .product-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.product-cell{min-width:0;background:var(--stage);border-radius:4px;overflow:hidden}.product-cell img{width:100%;height:auto;aspect-ratio:auto;object-fit:contain}.product-label{display:block;color:var(--ink);font-size:14px;padding:10px}.product-type{color:var(--muted)}.media-label,figcaption{display:block;color:var(--muted);font-size:13px;margin:8px 0 30px}.gated-zone{display:block}.next-studies{padding-top:95px}.next-head{display:flex;justify-content:space-between;gap:24px;align-items:baseline}.next-all{font-size:14px;color:var(--clay);font-weight:500}.next-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-top:26px}.next-card{background:var(--stage);padding:27px;border-radius:4px}.next-card-meta{font-size:12px;color:var(--clay)}.next-card-title{font-size:18px;margin:10px 0}.next-card-desc,.next-card-metric{font-size:14px;color:var(--muted)}
/* Writing details */
.post-details{color:var(--muted);font-size:14px;margin-top:20px}.blog-body{max-width:900px}.blog-prose{max-width:720px;margin-inline:auto;font-size:17px;color:var(--muted);line-height:1.65}.blog-prose p,.blog-prose ul,.blog-prose ol{margin:0 0 22px}.blog-prose h2{font-size:29px;color:var(--ink);margin:66px 0 19px}.blog-prose h3{font-size:20px;color:var(--ink);margin:37px 0 15px}.blog-prose strong{color:var(--ink)}.blog-prose ul,.blog-prose ol{padding-left:24px}.blog-prose li{margin:8px 0}.tldr,.callout,.pullquote,.pattern-example{background:var(--ribbon);padding:25px 29px;border-radius:4px;margin:32px 0}.tldr-label,.callout-label,.pattern-example-label{color:var(--clay);font-size:12px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:12px}.section-break{margin:50px 0 0}.section-break span{font:500 12px var(--heading);color:var(--clay)}.pattern-block{margin:34px 0}.pattern-header{display:flex;gap:12px;align-items:baseline}.pattern-number{color:var(--clay)}.pattern-name{font-size:19px}.pattern-body{margin-top:15px}.series-nav{max-width:720px;margin:90px auto 0}.series-nav-hand{margin-bottom:12px}.series-nav-name{font-size:25px}.series-parts{list-style:none;padding:0;margin:28px 0 0;display:grid;gap:12px}.series-part{display:flex;align-items:center;gap:17px;padding:14px 0}.part-num{color:var(--clay);font-size:13px}.part-title{font-weight:600}.part-time{font-size:13px;color:var(--muted);margin-left:auto}.part-arrow{color:var(--clay)}
@media(max-width:740px){.shell,.inner,.site-header,.site-footer{width:calc(100% - 40px)}.site-header{padding-top:25px;align-items:flex-start;flex-direction:column;gap:18px}.site-nav{justify-content:flex-start;gap:14px 20px}.site-nav a{min-height:30px}.page-hero,.cs-hero,.blog-header{padding:67px 0 42px}.site-main{padding-bottom:75px}.work-list .entry{grid-template-columns:1fr;gap:22px}.work-list{gap:55px}.about-grid{grid-template-columns:1fr;gap:40px}.photo-col{position:static;max-width:220px}.how-grid{grid-template-columns:1fr}.life-grid{grid-template-columns:repeat(2,1fr)}.overview-grid,.overview-split,.next-grid{grid-template-columns:1fr}.overview{padding:24px}.content-area .product-grid{grid-template-columns:1fr}.role-head,.exp-company{align-items:flex-start;flex-direction:column;gap:6px}.contact{padding:65px 0}.channel{align-items:flex-start;flex-direction:column;gap:5px}.channel-arrow{display:none}.site-footer{flex-direction:column}.blog-prose h2,.content-area>h2{font-size:26px}}
.work-list .entry-trail{display:inline-flex;align-items:center;gap:8px;margin-top:22px}.work-list .entry-trail .entry-arrow{opacity:0;transform:translate(-3px,3px)}.work-list .entry:hover .entry-arrow,.work-list .entry:focus-visible .entry-arrow{opacity:1;transform:translate(2px,-2px)}
/* Let type and imagery carry the inner pages; reserve clay for links and small accents. */
.u-mark{color:var(--ink)}
.page-hand,.bay-eyebrow,.cs-meta,.post-series,.entry-meta,.overview-eyebrow,.next-hand,.about-callout-eyebrow,.ov-col-h,.overview dt,.tldr-label,.callout-label,.pattern-example-label{color:var(--muted)}
.about-egg{display:none}
.block-title .block-hand{font:inherit;letter-spacing:inherit;text-transform:none;color:inherit}
.cs-tag,.tag{background:var(--ribbon);color:var(--muted)}
.overview,.about-callout,.tldr,.callout,.pullquote,.pattern-example{background:var(--ribbon)}
.overview{padding:28px 32px;font-size:15px;line-height:1.5}
.overview-grid,.overview-split{gap:24px}
.overview li{margin:5px 0}
.next-card{background:var(--ribbon)}
.agent-slides{margin:32px 0 0}
.agent-slide{width:100%;height:auto;background:var(--stage);border-radius:4px}
.agent-slide--hidden{display:none!important}
.agent-nav{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:13px;margin:14px 0 44px}
.agent-nav-btn{width:32px;height:32px;border:1px solid #d5d1ca;border-radius:50%;background:transparent;color:var(--ink);font:500 14px var(--body)}
.agent-nav-btn:disabled{opacity:.35}
.agent-dots{display:flex;align-items:center;gap:9px}
.agent-dot{width:8px;height:8px;padding:0;border:0;border-radius:50%;background:#c9c6bf}
.agent-dot.is-active{background:var(--clay)}
.agent-nav-cap{flex-basis:100%;text-align:center;color:var(--muted);font-size:12px}
.scenario{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:30px 0}
.scenario-side{padding:23px;background:var(--ribbon);border-radius:3px}
.scenario-tag{display:block;margin-bottom:13px;color:var(--muted);font-size:12px;letter-spacing:.06em;text-transform:uppercase}
.opening-graf{font-size:19px;color:var(--ink)}
@media(max-width:740px){.scenario{grid-template-columns:1fr;gap:12px}}
@media(max-width:620px){.channel{grid-template-columns:minmax(0,1fr) 16px;gap:3px 10px}.channel-label,.channel-value{grid-column:1}.channel-arrow{display:block;grid-column:2;grid-row:1/3;align-self:center}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

/* Homepage composition */
  #disha-warm {
    --secondary-ink: var(--muted);
    --heading-font: var(--heading); --body-font: var(--body);
    --display-weight: 500; --heading-weight: 500; --space-factor: 1;
    --doodles: url('doodles.webp');
    width: 100%; margin-inline: auto;
    background: var(--paper); color: var(--ink); color-scheme: light;
    font-family: var(--body-font); font-size: 17px; line-height: 1.55;
    font-kerning: normal; font-feature-settings: 'kern' 1, 'liga' 1;
    text-rendering: optimizeLegibility; overflow: visible; isolation: isolate;
  }
  #disha-warm *, #disha-warm *::before, #disha-warm *::after {box-sizing: border-box;}
  #disha-warm :where(h1,h2,h3,p,figure) {margin: 0;}
  #disha-warm :where(h1,h2,h3) {font-family: var(--heading-font); font-weight: var(--heading-weight); text-wrap: balance;}
  #disha-warm a {color: inherit; text-decoration: none;}
  #disha-warm a:focus-visible, #disha-warm button:focus-visible {outline: 2px solid var(--clay); outline-offset: 5px;}
  #disha-warm .dw-wrap {width: calc(100% - 80px); max-width: 900px; margin-inline: auto;}
  #disha-warm .dw-header {display: flex; align-items: center; justify-content: space-between; gap: 30px; padding-block: 34px;}
  #disha-warm .dw-name {font-family: var(--heading-font); font-weight: 500; font-size: 16px; white-space: nowrap;}
  #disha-warm .dw-nav {display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 23px; font-size: 13px;}
  #disha-warm .dw-nav a {transition: color .2s;}
  #disha-warm .dw-nav a:hover {color: var(--clay);}
  #disha-warm .dw-hero {display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); column-gap: 60px; align-items: center; padding-top: 82px; padding-bottom: calc(105px * var(--space-factor));}
  #disha-warm .dw-hero-copy {grid-column: 1; min-width: 0;}
  #disha-warm .dw-hero-heading {min-width: 0;}
  #disha-warm .dw-photo {display: block; position: absolute; width: 86%; height: auto; aspect-ratio: 4 / 5; top: 4%; left: 7%; object-fit: cover; object-position: 50% 48%; border: 7px solid #fffdf9; box-shadow: 0 13px 30px rgba(54,43,34,.13); border-radius: 2px; transition: box-shadow .55s cubic-bezier(.22,1,.36,1);}
  #disha-warm .dw-hello {color: var(--clay); font: 500 16px/1.4 var(--body); margin-bottom: 13px;}
  #disha-warm h1 {font-size: clamp(38px, 4.2vw, 47px); line-height: 1.13; letter-spacing: -.045em; text-align: left; font-weight: var(--display-weight);}
  #disha-warm h1 span {color: var(--clay);}
  #disha-warm .dw-role {font-size: 11px; letter-spacing: .07em; text-align: left; margin-top: 22px; color: var(--secondary-ink); text-wrap: balance; max-width: 430px;}
  #disha-warm .dw-intro {max-width: 560px; margin-top: 46px; min-width: 0;}
  #disha-warm .dw-intro p {color: var(--secondary-ink); margin-bottom: 20px;}
  #disha-warm .dw-intro .dw-lead {font-size: 19px; line-height: 1.4; color: var(--ink); margin-bottom: 24px;}
  #disha-warm .dw-links {display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 22px 30px; align-items: center; margin-top: 32px;}
  #disha-warm .dw-link {display: inline-flex; align-items: center; gap: 10px; color: var(--clay); font-weight: 500; font-size: 15px; min-height: 34px;}
  #disha-warm .dw-link i, #disha-warm .dw-project-action i {font-style: normal; font-size: 13px; opacity: 0; transform: translate(-3px,3px); transition: opacity .25s ease, transform .35s cubic-bezier(.22,1,.36,1);}
  #disha-warm .dw-link:hover i, #disha-warm .dw-link:focus-visible i, #disha-warm a:hover .dw-project-action i, #disha-warm a:focus-visible .dw-project-action i {opacity: 1; transform: translate(2px,-2px);}
  #disha-warm .dw-hero-art {display: block; grid-column: 2; grid-row: 1; align-self: center; position: relative; width: 100%; aspect-ratio: .78; margin-top: 0;}
  #disha-warm .dw-doodle {display: block; position: absolute; aspect-ratio: 1; background: var(--clay); opacity: .68; -webkit-mask-image: var(--doodles); mask-image: var(--doodles); -webkit-mask-size: 300% 100%; mask-size: 300% 100%; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; transition: transform .45s ease;}
  #disha-warm .dw-mug {width: 21%; top: -4%; right: -4%; -webkit-mask-position: left center; mask-position: left center; transform: rotate(6deg);}
  #disha-warm .dw-scuba {width: 22%; left: -5%; bottom: 18%; -webkit-mask-position: center center; mask-position: center center; transform: rotate(-7deg);}
  #disha-warm .dw-notebook {width: 29%; right: -3%; top: 76%; -webkit-mask-position: right center; mask-position: right center; transform: rotate(5deg);}
  #disha-warm .dw-hero-art:hover .dw-mug {transform: rotate(2deg) translateY(-2px);}
  #disha-warm .dw-hero-art:hover .dw-notebook {transform: rotate(2deg);}
  #disha-warm[data-hero='Editorial crop'] .dw-photo {width: 91%; aspect-ratio: 1 / 1.06; top: 5%; left: 4.5%; object-position: 50% 31%; border-width: 0; box-shadow: 0 12px 28px rgba(54,43,34,.11); border-radius: 3px;}
  #disha-warm[data-hero='Editorial crop'] .dw-mug {width: 19%; top: auto; bottom: 2%; left: 9%; right: auto; transform: rotate(-5deg);}
  #disha-warm[data-hero='Editorial crop'] .dw-scuba {width: 21%; top: auto; bottom: 0; left: 40%; transform: rotate(2deg);}
  #disha-warm[data-hero='Editorial crop'] .dw-notebook {width: 23%; top: auto; bottom: 2%; left: auto; right: 8%; transform: rotate(5deg);}
  #disha-warm[data-hero='Margin sketches'] .dw-photo {width: 72%; aspect-ratio: 3 / 4; top: 5%; left: 1%; object-position: 50% 45%; border-width: 0; box-shadow: 0 12px 28px rgba(54,43,34,.12); border-radius: 3px;}
  #disha-warm[data-hero='Margin sketches'] .dw-mug {width: 24%; top: 7%; right: 0; transform: rotate(3deg);}
  #disha-warm[data-hero='Margin sketches'] .dw-scuba {width: 25%; top: 33%; left: auto; right: 0; bottom: auto; transform: rotate(-4deg);}
  #disha-warm[data-hero='Margin sketches'] .dw-notebook {width: 27%; top: 59%; right: 0; bottom: auto; transform: rotate(4deg);}
  #disha-warm .dw-banner-space {position: relative; width: 100%; margin-bottom: calc(112px * var(--space-factor)); overflow: hidden;}
  #disha-warm .dw-ribbon {background: var(--ribbon); color: var(--ink); width: 100%; overflow: hidden; padding-block: 21px;}
  #disha-warm .dw-marquee {display: flex; width: max-content; animation: dw-drift 44s linear infinite; will-change: transform;}
  #disha-warm .dw-ribbon:hover .dw-marquee {animation-play-state: paused;}
  #disha-warm .dw-marquee-group {display: flex; align-items: center; justify-content: space-around; width: max(100vw, 1250px); flex: 0 0 auto; gap: 26px; padding-inline: 28px; font-family: var(--heading-font); font-size: 16px; font-weight: 500; white-space: nowrap;}
  #disha-warm .dw-marquee-group span {display: inline-flex; align-items: center; gap: 15px;}
  #disha-warm .dw-marquee-group span::before {content: ''; display: inline-block; width: 7px; height: 7px; background: var(--clay); border-radius: 1px; transform: rotate(45deg); flex: 0 0 auto;}
  #disha-warm .dw-eyebrow {font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--secondary-ink); margin-bottom: 20px; font-weight: 500;}
  #disha-warm h2 {font-size: clamp(29px, 3vw, 36px); letter-spacing: -.035em; line-height: 1.2; max-width: 740px;}
  #disha-warm .dw-work {padding-bottom: calc(52px * var(--space-factor));}
  #disha-warm .dw-feature {margin-top: 54px;}
  #disha-warm .dw-feature-link {display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); align-items: center; gap: 46px;}
  #disha-warm .dw-stage {display: block; padding: 0; overflow: hidden; border-radius: 5px; background: var(--stage); aspect-ratio: 4 / 3;}
  #disha-warm .dw-stage img {display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform .7s cubic-bezier(.22,1,.36,1);}
  #disha-warm .dw-project:hover .dw-stage img, #disha-warm .dw-project:focus-within .dw-stage img {transform: scale(1.015);}
  #disha-warm .dw-project-head {display: flex; justify-content: space-between; align-items: flex-start; gap: 16px;}
  #disha-warm .dw-meta {font-size: 12px; letter-spacing: .06em; color: var(--secondary-ink); margin-bottom: 15px;}
  #disha-warm h3 {font-size: 21px; line-height: 1.3; letter-spacing: -.025em;}
  #disha-warm .dw-project-copy {margin-top: 30px;}
  #disha-warm .dw-feature .dw-project-copy {display: grid; gap: 22px; align-content: center; margin-top: 0;}
  #disha-warm .dw-feature h3 {font-size: 24px;}
  #disha-warm .dw-project-action {display: inline-flex; align-items: center; gap: 8px; color: var(--clay); font-size: 14px; font-weight: 500;}
  #disha-warm .dw-outcome {color: var(--secondary-ink); font-size: 17px; line-height: 1.5;}
  #disha-warm .dw-outcome strong {font-weight: 600; color: var(--ink);}
  #disha-warm .dw-arrow {font-family: var(--body-font); font-size: 14px; line-height: 1.3; flex: 0 0 auto; opacity: 0; transform: translate(-3px,3px); transition: opacity .25s ease, transform .35s cubic-bezier(.22,1,.36,1);}
  #disha-warm a:hover .dw-arrow, #disha-warm a:focus-visible .dw-arrow {opacity: 1; transform: translate(2px,-2px);}
  #disha-warm .dw-project-pair {display: grid; grid-template-columns: 1fr 1fr; gap: 52px; margin-top: calc(105px * var(--space-factor));}
  #disha-warm .dw-project-pair .dw-project, #disha-warm .dw-card-link {display: flex; flex-direction: column;}
  #disha-warm .dw-card-link {flex: 1;}
  #disha-warm .dw-project-pair .dw-project-copy {display: flex; flex: 1; flex-direction: column;}
  #disha-warm .dw-project-pair .dw-stage {aspect-ratio: 4 / 3;}
  #disha-warm .dw-project-pair .dw-outcome {margin-top: 22px;}
  #disha-warm .dw-project-pair .dw-project-action {margin-top: auto; padding-top: 22px;}
  #disha-warm .dw-all-work {display: flex; justify-content: flex-end; align-self: flex-end; white-space: nowrap;}
  #disha-warm .dw-writing {background: var(--paper); padding-block: calc(40px * var(--space-factor)) calc(74px * var(--space-factor));}
  #disha-warm .dw-section-head {display: flex; justify-content: space-between; align-items: flex-end; gap: 24px;}
  #disha-warm .dw-writing .dw-section-head {position: relative; padding-right: 90px;}
  #disha-warm .dw-writing-notebook {position: absolute; top: -8px; right: 14px; width: 75px; aspect-ratio: 1; background: var(--clay); opacity: .52; -webkit-mask-image: var(--doodles); mask-image: var(--doodles); -webkit-mask-size: 300% 100%; mask-size: 300% 100%; -webkit-mask-position: right center; mask-position: right center; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; transform: rotate(8deg); pointer-events: none;}
  #disha-warm .dw-section-link {margin-top: 48px; text-align: left;}
  #disha-warm .dw-writing-list {display: grid; gap: 50px; margin-top: 58px;}
  #disha-warm .dw-article {display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); align-items: start; gap: 42px;}
  #disha-warm .dw-article-title {display: flex; align-items: center; gap: 12px;}
  #disha-warm .dw-article .dw-arrow {font-size: 13px;}
  #disha-warm .dw-article h3 {font-size: 20px;}
  #disha-warm .dw-article p {font-size: 16px; color: var(--secondary-ink);}
  #disha-warm .dw-reading {display: block; font-size: 13px; margin-top: 16px; color: var(--secondary-ink);}
  #disha-warm .dw-article .dw-meta {font-size: 11px; letter-spacing: .045em;}
  #disha-warm .dw-article:hover h3 {color: var(--clay);}
  #disha-warm .dw-contact {position: relative; padding-block: calc(96px * var(--space-factor)) 118px;}
  #disha-warm .dw-contact::before {content: ''; position: absolute; top: 44px; right: 2%; width: 116px; aspect-ratio: 1; background: var(--clay); -webkit-mask-image: var(--doodles); mask-image: var(--doodles); -webkit-mask-size: 300% 100%; mask-size: 300% 100%; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: left center; mask-position: left center; transform: rotate(7deg); opacity: .55; pointer-events: none;}
  #disha-warm .dw-contact h2 {font-size: clamp(29px,3vw,36px);}
  #disha-warm .dw-contact p:not(.dw-eyebrow) {max-width: 580px; color: var(--secondary-ink); font-size: 17px; margin-top: 26px;}
  #disha-warm .dw-contact .dw-link {margin-top: 34px;}
  #disha-warm .dw-footer {display: flex; align-items: flex-start; justify-content: space-between; gap: 30px; padding-bottom: 42px; color: var(--secondary-ink); font-size: 12px;}
  #disha-warm .dw-footer-note {margin-top: 8px;}
  #disha-warm .dw-socials {display: flex; gap: 20px; flex-wrap: wrap;}
  @keyframes dw-drift {to {transform: translateX(-50%);}}
  @media (prefers-reduced-motion: reduce) {
    #disha-warm .dw-marquee {animation-play-state: paused;}
    #disha-warm :where(img,i,.dw-doodle,.dw-arrow) {transition: none;}
  }
  @media (hover: none) {
    #disha-warm .dw-arrow, #disha-warm .dw-link i, #disha-warm .dw-project-action i {opacity: .8; transform: none;}
  }
  @media (max-width: 900px) {
    #disha-warm .dw-wrap {width: calc(100% - 64px);}
    #disha-warm .dw-feature-link {gap: 34px;}
    #disha-warm .dw-project-pair {gap: 32px;}
    #disha-warm .dw-nav {gap: 16px;}
    #disha-warm .dw-hero {column-gap: 36px;}
  }
  @media (max-width: 740px) {
    #disha-warm .dw-hero {grid-template-columns: minmax(0, 1fr); row-gap: 30px; padding-top: 52px;}
    #disha-warm .dw-hero-copy {grid-column: 1; grid-row: 1;}
    #disha-warm .dw-hero-art {grid-column: 1; grid-row: 2; width: min(84%, 300px); margin: 0 auto;}
    #disha-warm .dw-intro {max-width: 100%; margin-top: 34px;}
  }
  @media (max-width: 620px) {
    #disha-warm .dw-wrap {width: calc(100% - 40px);}
    #disha-warm .dw-header {align-items: flex-start; flex-direction: column; padding-top: 24px; gap: 20px;}
    #disha-warm .dw-nav {justify-content: flex-start; gap: 14px; font-size: 13px;}
    #disha-warm .dw-nav a {min-height: 32px; display: flex; align-items: center;}
    #disha-warm .dw-hero {padding-top: 44px; padding-bottom: 94px;}
    #disha-warm h1 {font-size: clamp(36px,8vw,44px); letter-spacing: -.045em;}
    #disha-warm .dw-role {font-size: 10px; max-width: 320px; margin-inline: 0; line-height: 1.5;}
    #disha-warm .dw-intro {margin-top: 32px;}
    #disha-warm .dw-intro .dw-lead {font-size: 19px;}
    #disha-warm .dw-intro p {font-size: 16px;}
    #disha-warm .dw-links {gap: 14px 24px;}
    #disha-warm .dw-banner-space {margin-bottom: 80px;}
    #disha-warm .dw-marquee-group {font-size: 16px; gap: 28px; padding-inline: 14px;}
    #disha-warm .dw-ribbon {padding-block: 17px;}
    #disha-warm .dw-stage {aspect-ratio: 4 / 3;}
    #disha-warm .dw-feature {margin-top: 44px;}
    #disha-warm .dw-feature-link {grid-template-columns: 1fr; gap: 24px;}
    #disha-warm .dw-feature .dw-stage {aspect-ratio: 4 / 3;}
    #disha-warm .dw-feature .dw-project-copy {gap: 16px;}
    #disha-warm .dw-project-pair {grid-template-columns: 1fr; gap: 72px; margin-top: 72px;}
    #disha-warm .dw-project-pair .dw-stage {aspect-ratio: 4 / 3;}
    #disha-warm .dw-all-work {justify-content: flex-start; align-self: flex-start;}
    #disha-warm .dw-work {padding-bottom: 40px;}
    #disha-warm .dw-writing {padding-block: 35px 76px;}
    #disha-warm .dw-section-head {align-items: flex-start; flex-direction: column; gap: 24px;}
    #disha-warm .dw-writing-list {gap: 48px; margin-top: 48px;}
    #disha-warm .dw-article {grid-template-columns: 1fr; gap: 15px;}
    #disha-warm .dw-contact {padding-block: 92px 92px;}
    #disha-warm .dw-contact::before {width: 76px; top: 0; right: 0;}
    #disha-warm .dw-contact p:not(.dw-eyebrow) {font-size: 17px;}
    #disha-warm .dw-footer {flex-direction: column; gap: 26px;}
  }

/* Shared components: site chrome, page labels, links, and project media. */
.c-header,
#disha-warm .c-header {
  width: min(900px, calc(100% - 80px));
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  padding-block: 34px;
}
.c-brand,
#disha-warm .c-brand {
  font: 500 16px var(--heading);
  white-space: nowrap;
}
.c-nav,
#disha-warm .c-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 23px;
  font: 400 13px/1.5 var(--body);
}
.c-nav a,
#disha-warm .c-nav a { transition: color .2s ease; }
.c-nav a:hover,
.c-nav a[aria-current],
#disha-warm .c-nav a:hover,
#disha-warm .c-nav a[aria-current] { color: var(--clay); }
.c-footer,
#disha-warm .c-footer {
  width: min(900px, calc(100% - 80px));
  margin-inline: auto;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 28px;
  padding-bottom: 44px;
  color: var(--muted);
  font: 400 12px/1.5 var(--body);
}
.c-socials,
#disha-warm .c-socials { display: flex; flex-wrap: wrap; gap: 20px; }
.c-footer-note,
#disha-warm .c-footer-note { margin-top: 8px; }
.c-socials a:hover,
#disha-warm .c-socials a:hover { color: var(--clay); }

/* Accent is a small signal in headings and labels, not a fill for every panel. */
.page-hand,
.bay-eyebrow,
.cs-meta,
.post-series,
.contact-hand { color: var(--clay); }
.page-about .page-title .u-mark,
.page-work .page-title .u-mark,
.page-contact .contact-title .u-mark { color: var(--clay); }
.page-blog .page-title .u-mark,
.page-resume .page-title .u-mark { color: var(--ink); position: relative; }
.page-blog .page-title .u-mark-line,
.page-resume .page-title .u-mark-line { display: none; }

.c-work-cover,
#disha-warm .c-work-cover {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: 5px;
  background: var(--stage);
}
.page-work .entry-cover.c-work-cover {
  padding: clamp(18px, 2.4vw, 26px);
  background: #e9e4e2;
}
.page-work .entry-cover.c-work-cover img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #f8f7f5;
  border-radius: 2px;
  box-shadow: 0 9px 22px rgba(48, 45, 40, .12);
}

/* The writing index reads as two related groups with one click target per entry. */
.page-blog .section { padding-bottom: 34px; }
.page-blog .section + .section { padding-top: 22px; }
.page-blog .entry:is(:hover, :focus-visible) .entry-title {
  color: var(--clay);
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* Reading and interaction standards shared by the chosen pages. */
:root { --reading-width: 700px; --reading-leading: 1.6; }
.blog-prose, .content-area { line-height: var(--reading-leading); }
.entry:hover .entry-arrow,
.work-list .entry:hover .entry-arrow,
.work-list .entry:focus-visible .entry-arrow,
#disha-warm a:hover .dw-arrow,
#disha-warm a:focus-visible .dw-arrow,
#disha-warm .dw-link:hover i,
#disha-warm .dw-link:focus-visible i,
#disha-warm a:hover .dw-project-action i,
#disha-warm a:focus-visible .dw-project-action i { transform: translateX(3px); }
.work-list .entry-trail .entry-arrow,
#disha-warm .dw-arrow { transform: translateX(-3px); }
@media (hover: none) {
  .page-blog .series-list .entry-title,
  .page-blog .bay-main > .entry .entry-title { color: var(--clay); font-weight: 600; }
  .page-blog .entry:active .entry-title { opacity: .72; }
}
@media (max-width: 740px) {
  .site-nav a, #disha-warm .dw-nav a,
  .c-nav a, #disha-warm .c-nav a {
    display: inline-flex; align-items: center; min-height: 44px;
    font-size: 14px;
  }
  .site-nav, #disha-warm .dw-nav,
  .c-nav, #disha-warm .c-nav { gap: 0 18px; }
  .site-footer, #disha-warm .dw-footer,
  .c-footer, #disha-warm .c-footer { font-size: 13px; }
  .c-case-brief .overview-grid dt, .c-case-brief .ov-col-h,
  .c-gist .tldr-label { font-size: 12px; }
}

/* Case brief: one label and value rhythm across every case study. */
.overview.c-case-brief {
  padding: 0;
  margin-bottom: 76px;
  background: transparent;
  font-size: 15px;
  line-height: 1.55;
}
.c-case-brief .overview-eyebrow {
  color: var(--clay);
  margin-bottom: 13px;
}
.c-case-brief .overview-grid,
.c-case-brief .overview-split {
  display: block;
  margin: 0;
}
.c-case-brief .ov,
.c-case-brief .ov-col {
  display: grid;
  grid-template-columns: 170px minmax(0, 1fr);
  gap: 22px;
  padding: 18px 0;
  border-top: 1px solid #dedbd5;
  background: transparent;
  border-radius: 0;
}
.c-case-brief .overview-grid dt,
.c-case-brief .ov-col-h {
  margin: 2px 0 0;
  color: var(--clay);
  font: 600 11px/1.4 var(--body);
  letter-spacing: .09em;
  text-transform: uppercase;
}
.c-case-brief .overview-grid dd { margin: 0; color: var(--ink); }
.c-case-brief .ov-col ul {
  margin: 0;
  padding-left: 19px;
  color: var(--ink);
  font-size: 15px;
  line-height: 1.55;
}
.c-case-brief .ov-col li { margin: 0 0 7px; }
.c-case-brief .ov-col li:last-child { margin-bottom: 0; }

/* Article digest, annotation, quotation, and chapter marker are distinct components. */
.tldr.c-gist {
  display: block;
  max-width: var(--reading-width);
  margin: 34px 0 0;
  padding: 22px 24px;
  border: 0;
  border-radius: 5px;
  background: var(--panel);
}
.c-gist .tldr-label {
  margin: 0 0 10px;
  color: var(--clay);
  font: 600 11px/1.4 var(--body);
  letter-spacing: .09em;
  text-transform: uppercase;
}
.c-gist p {
  max-width: 600px;
  color: var(--ink);
  font-size: 16px;
  line-height: 1.55;
}
.blog-prose .pullquote.c-quote {
  max-width: var(--reading-width);
  margin: 36px 0;
  padding: 20px 24px;
  border: 0;
  border-left: 3px solid var(--clay);
  border-radius: 0 5px 5px 0;
  background: var(--panel);
  color: var(--ink);
  font: 500 20px/1.5 var(--heading);
  letter-spacing: -.025em;
}
.blog-prose .c-quote p { margin: 0; color: inherit; }
.blog-prose .chapter-heading.c-chapter {
  display: block;
  margin: 66px 0 20px;
}
.c-chapter .chapter-number { display: none; }
.blog-prose .c-chapter h2 { margin: 0; }
.blog-prose .callout,
.blog-prose .pattern-example {
  background: var(--panel);
  border-radius: 5px;
}
.blog-prose .callout-label,
.blog-prose .pattern-example-label { color: var(--clay); }

@media (max-width: 740px) {
  .c-header,
  #disha-warm .c-header,
  .c-footer,
  #disha-warm .c-footer { width: calc(100% - 40px); }
  .c-header,
  #disha-warm .c-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 18px;
    padding-block: 25px;
  }
  .c-nav,
  #disha-warm .c-nav { justify-content: flex-start; gap: 14px 20px; }
  .c-footer,
  #disha-warm .c-footer { flex-direction: column; }
  .c-case-brief .ov,
  .c-case-brief .ov-col { grid-template-columns: 1fr; gap: 7px; padding: 16px 0; }
  .tldr.c-gist { padding: 22px; }
  .blog-prose .pullquote.c-quote { margin-block: 40px; font-size: 18px; }
  .blog-prose .chapter-heading.c-chapter { display: block; }
}

@media (hover: none) {
  .work-list .entry-trail .entry-arrow { opacity: .8; transform: none; }
}

/* Long-form text uses one measure; media can still use the 900px canvas. */
.blog-prose { max-width: var(--reading-width); margin-left: 0; margin-right: 0; }
.content-area > :is(p, ul, ol, h2, h3),
.content-area .gated-zone > :is(p, ul, ol, h2, h3),
.content-area .gated-teaser > :is(p, ul, ol, h2, h3) {
  max-width: var(--reading-width);
  margin-left: 0;
  margin-right: 0;
}
.content-area > :is(img, video, figure, .product-grid, .case-video, .agent-slides),
.content-area .gated-zone > :is(img, video, figure, .product-grid, .case-video, .agent-slides) { width: min(100%, 700px); max-width: 700px; margin-left: 0; margin-right: 0; }
.content-area > .media-label,
.content-area .gated-zone > .media-label { max-width: 700px; }
.content-area .gated-teaser { text-align: left; }

/* Reusable type and text-action primitives. */
.c-eyebrow,
#disha-warm .c-eyebrow {
  color: var(--clay);
  font: 500 12px/1.4 var(--body);
  letter-spacing: .1em;
  text-transform: uppercase;
}
.c-link,
#disha-warm .c-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--clay);
  font: 500 15px/1.45 var(--body);
}
.c-page-hero { padding: 95px 0 70px; }
.blog-prose h2,
.content-area > h2,
.content-area .gated-zone h2 {
  font-size: 30px;
  line-height: 1.2;
  letter-spacing: -.035em;
}
@media (max-width: 740px) {
  .c-page-hero { padding: 67px 0 42px; }
  .blog-prose h2,
  .content-area > h2,
  .content-area .gated-zone h2 { font-size: 26px; }
}

/* Resume follows the site's existing two-column chronology. */
.page-resume .resume-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; }
.page-resume .resume-dl { flex: 0 0 auto; }
.page-resume .exp { display: grid; grid-template-columns: 168px minmax(0, 1fr); gap: clamp(18px, 3vw, 40px); margin: 0; padding: 28px 0; border-top: 1px solid #dedbd5; }
.page-resume .exp:first-child { border-top: 0; padding-top: 4px; }
.page-resume .exp-company { display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 4px; margin: 0; }
.page-resume .exp-name { font: 600 17px/1.35 var(--body); letter-spacing: 0; }
.page-resume .exp-loc { font-size: 13px; }
.page-resume .exp-roles { display: flex; flex-direction: column; gap: 22px; }
.page-resume .role { margin: 0; }
.page-resume .role-title { font: 600 17px/1.4 var(--body); letter-spacing: 0; }
.page-resume .role-period { flex: 0 0 auto; font-size: 12px; color: var(--clay); border: 1px solid #dedbd5; border-radius: 999px; padding: 3px 10px; white-space: nowrap; }
.page-resume .role-points { list-style: none; padding: 0; margin: 10px 0 0; }
.page-resume .role-points li { position: relative; padding-left: 20px; margin: 0 0 7px; color: var(--muted); font-size: 15px; line-height: 1.6; }
.page-resume .role-points li::before { content: ''; position: absolute; left: 2px; top: .68em; width: 6px; height: 6px; border-radius: 50%; background: var(--clay); opacity: .55; }
.contact-foot { color: var(--clay); }
@media (max-width: 680px) {
  .page-resume .resume-head { flex-direction: column; align-items: flex-start; gap: 20px; }
  .page-resume .exp { grid-template-columns: 1fr; gap: 12px; }
  .page-resume .exp-company { flex-direction: row; align-items: baseline; gap: 10px; }
  .page-resume .role-head { flex-direction: column; align-items: flex-start; gap: 5px; }
  #disha-warm .dw-writing .dw-section-head { padding-right: 70px; }
  #disha-warm .dw-writing-notebook { width: 58px; right: 0; }
}
