/* Layout and styles adapted from csswizardry.com. Copyright (c) 2007-2026 Harry Roberts. MIT License: https://csswizardry.com/license/ */
/* Includes patterns from inuitcss, by @csswizardry: github.com/inuitcss | inuitcss.com (notice retained from the source). */
/* Palette adjusted for vikrammohan.com, 28 Sep 2026 */

:root{color-scheme: light only;}

/* Settings: the source's token structure, with the owner's palette and face. */
:root{
  --font-family-body: "Work Sans", system-ui, sans-serif;
  --spacing-unit: 24px;
  --spacing-unit--tiny: 6px;
  --spacing-unit--small: 12px;
  --spacing-unit--large: 48px;
  --spacing-gutter: 16px;
  --border-radius: 3px;
  --header-border-width: 6px;
  --header-max-height: 480px;
  --site-nav-logo-height: 64px;
  --color-brand: #7B3FE4;
  --color-brand-dark: #5E2BC0;
  --color-ink: #16163F;
  --color-panel: #E7E7EB;
  --color-wash-mid: #DDBBFF;
  --color-wash-light: #F8F0FF;
  --color-white: #FFF;
  --color-bg: var(--color-white);
  --color-text: var(--color-ink);
  --color-gray-light: #999;
  --color-gray-ui: var(--color-panel);
  --color-highlight: var(--color-white);
  --color-tint: var(--color-panel);
  --color-hilite: var(--color-wash-light);
  --color-hilite-text: var(--color-ink);
  --color-links: var(--color-brand);
  --color-links-hover: var(--color-brand-dark);
  --color-btn: var(--color-brand);
  --color-btn-hover: var(--color-brand-dark);
  --color-headings: var(--color-ink);
  --color-headings-column: var(--color-brand);
  --color-masthead: #FFFFFF;
  --color-masthead-border: var(--color-white);
  --masthead-wash: linear-gradient(90deg, rgba(90,30,160,.92) 0%, rgba(110,40,200,.84) 42%, rgba(158,63,253,.22) 58%, rgba(158,63,253,.08) 70%, rgba(158,63,253,.08) 100%);
  --color-band-dark: var(--color-white);
  --color-band-dark-background: var(--color-ink);
  --color-band-attention: var(--color-white);
  --color-band-attention-background: var(--color-brand);
  --color-page-micro: var(--color-white);
  --color-page-micro-background: var(--color-ink);
}

/* Generic. */
html{box-sizing:border-box}
*,*::before,*::after{box-sizing:inherit}
@supports(-webkit-text-size-adjust: none){html{-webkit-text-size-adjust:none}}
h1,h2,h3,h4,p,ul,ol,hr,body{margin:0;padding:0}
h1,h2,h3,h4,p,ul,ol,hr{margin-bottom:24px;margin-bottom:1.5rem}
ul,ol{margin-left:48px;margin-left:3rem}
@media(prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}}

/* Base. */
html{font-size:1em;line-height:1.5;font-family:var(--font-family-body);font-weight:400;background-color:var(--color-bg);color:var(--color-text);overflow-y:scroll;min-height:100%;-webkit-text-size-adjust:100%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}
body{font:400 1rem/1.5 var(--font-family-body);background-color:var(--color-bg);color:var(--color-text)}
h2,.beta{font-size:30px;font-size:1.875rem;line-height:1.6}
h3,.gamma{font-size:24px;font-size:1.5rem;line-height:1}
.delta{font-size:20px;font-size:1.25rem;line-height:1.2}
h1,h2,h3,h4{font-weight:400;color:var(--color-headings);text-wrap:balance}
.heading{display:block;font-size:22px;font-size:1.375rem;line-height:1.0909090909;color:var(--color-headings)}
a,strong,b{font-weight:600}
p{text-wrap:pretty}
hr{border:none;border-bottom:1px solid var(--color-gray-ui);margin-bottom:calc(var(--spacing-unit) - 1px)}
a{text-decoration:none;color:var(--color-links)}
a:hover,a:active,a:focus{text-decoration:underline;color:var(--color-links-hover)}
main a:not(.btn):visited{color:var(--color-links-hover)}
a:focus-visible{outline:2px solid currentColor;outline-offset:2px}
::selection{color:var(--color-white);background-color:var(--color-brand)}

/* Objects. */
.wrapper{max-width:1100px;margin:0 auto;padding-right:var(--spacing-gutter);padding-left:var(--spacing-gutter)}
@media screen and (min-width: 45em){.wrapper{padding-right:var(--spacing-unit);padding-left:var(--spacing-unit)}}
.wrapper--wide{max-width:1280px}
.wrapper--unconstrained{max-width:none}
.layout{list-style:none;margin:0;padding:0;margin-left:-24px}
.layout__item{display:inline-block;padding-left:24px;vertical-align:top;width:100%}
.layout--large{margin-left:-48px}
.layout--large>.layout__item{padding-left:48px}
.box{display:block;padding:24px;border-radius:var(--border-radius)}
.box>:last-child{margin-bottom:0}
.box--highlight{background-color:var(--color-highlight);border-bottom:1px solid var(--color-gray-ui)}
.list-ui,.list-ui__item,.list-ui>li{border:0 solid var(--color-gray-ui)}
.list-ui{margin:0;padding:0;list-style:none;border-top-width:1px}
.list-ui__item,.list-ui>li{padding:24px;border-bottom-width:1px}
.list-ui--small.list-ui>li{padding:12px}

/* Buttons. */
.btn{display:inline-block;vertical-align:middle;font:inherit;font-weight:600;text-align:center;margin:0;cursor:pointer;overflow:visible;padding:10px 22px;background-color:var(--color-btn);border:2px solid var(--color-btn);border-radius:var(--border-radius);position:relative;z-index:1}
.btn,.btn:hover,.btn:active,.btn:focus{text-decoration:none;color:var(--color-white)}
.btn:hover,.btn:active,.btn:focus{background-color:var(--color-btn-hover);border-color:var(--color-btn-hover);transform:translateY(-1px)}
.btn::before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;box-shadow:0 4px 0 #000;opacity:0}
.btn:hover::before,.btn:active::before,.btn:focus::before{opacity:.1}
.btn:focus-visible{outline-color:var(--color-brand)}
@media(prefers-reduced-motion: no-preference){.btn{transition:transform .2s}}
.btn--full{width:100%;padding:10px 22px}
.btn--secondary{background:none;color:var(--color-btn)}
.btn--secondary:hover,.btn--secondary:active,.btn--secondary:focus{background:none;color:var(--color-btn-hover)}

/* Masthead: the photograph is replaced by a colour wash. */
.page-head--masthead{border-style:solid;border-width:var(--header-border-width) 0 0;border-top-color:var(--color-masthead-border);padding-top:var(--spacing-unit--small);padding-bottom:var(--spacing-unit--small);background-color:var(--color-brand);background-image:var(--masthead-wash);background-repeat:no-repeat;background-size:128% auto;background-position:0% 12%;background-color:#5E2BC0;color:var(--color-masthead);box-shadow:0 0 10px rgba(0,0,0,.1) inset}
@media screen and (min-width: 45em){.page-head--masthead{padding-top:var(--spacing-unit);padding-bottom:var(--spacing-unit)}}
@media screen and (max-width: 44.99em){.page-head--masthead{background-size:cover;background-position:60% 20%}}
.page-head--masthead>.wrapper{display:flex;flex-direction:column;min-height:56.25vw}
@media screen and (min-width: 758px){.page-head--masthead>.wrapper{min-height:calc(var(--header-max-height) + 120px - var(--spacing-unit--large) - var(--header-border-width))}}
.page-head__photo{flex:1 0 auto;display:flex;align-items:center;justify-content:center;margin:0;padding:var(--spacing-unit--small) 0;font-size:12px;font-size:.75rem;line-height:2;text-transform:uppercase;letter-spacing:.1em;text-align:center;color:var(--color-masthead)}
.page-head__text{margin:0 0 var(--spacing-unit--small);color:var(--color-masthead);font-size:24px;font-size:1.5rem;line-height:1;font-weight:400}
@media screen and (min-width: 45em){.page-head__text{font-size:48px;font-size:3rem}}
@media screen and (min-width: 64em){.page-head__text{font-size:72px;font-size:4.5rem}}
.page-head__line{display:block}
.page-head__sub{margin:0;color:var(--color-masthead);font-weight:400;font-size:16px;font-size:1rem;line-height:1.5}
@media screen and (min-width: 45em){.page-head__sub{font-size:20px;font-size:1.25rem;line-height:1.2}}
@media screen and (min-width: 64em){.page-head__sub{font-size:24px;font-size:1.5rem;line-height:1.25}}

/* Site navigation: links wrap on narrow screens, no drawer. */
.site-nav::after{content:"";display:table;clear:both}
.site-nav__home-link{display:inline-block;padding:var(--spacing-unit--tiny) 0;font-size:22px;font-size:1.375rem;line-height:1.0909090909;font-weight:700}
.site-nav__home-link,.site-nav__home-link:hover,.site-nav__home-link:active,.site-nav__home-link:focus{color:var(--color-masthead)}
.site-nav__list{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;align-items:center;margin-left:calc(-1*var(--spacing-unit--tiny))}
.site-nav__link{display:block;padding:var(--spacing-unit--tiny);color:var(--color-masthead)}
.site-nav__link:hover,.site-nav__link:active,.site-nav__link:focus{text-decoration:underline;color:var(--color-masthead)}
.site-nav__link[aria-current="page"]{text-decoration:underline}
.site-nav__item--cta{margin-left:var(--spacing-unit--tiny)}
@media screen and (min-width: 45em){
  .site-nav__home-link{float:left;padding:0;line-height:var(--site-nav-logo-height)}
  .site-nav__list{float:right;margin-left:0;justify-content:flex-end}
  .site-nav__link{line-height:var(--site-nav-logo-height);padding-top:0;padding-bottom:0;padding-right:var(--spacing-unit--small);padding-left:var(--spacing-unit--small)}
  .site-nav__item--cta{margin-left:var(--spacing-unit--small)}
}

/* Strip under the photo (the source's ribbon). */
.c-highlight{padding:var(--spacing-unit);background-color:var(--color-hilite)}
.c-highlight,.c-highlight a{color:var(--color-hilite-text)}
.c-highlight a{text-decoration:underline}
.c-highlight--small{padding:var(--spacing-unit--small) var(--spacing-gutter)}
.c-highlight--ribbon{display:block;text-align:center}

/* Bands. */
.band{padding-top:var(--spacing-unit);padding-bottom:var(--spacing-unit)}
@media screen and (min-width: 64em){.band{padding-top:var(--spacing-unit--large);padding-bottom:var(--spacing-unit--large)}}
.band--highlight{background-color:var(--color-highlight)}
.band--tint{background-color:var(--color-tint)}
.band--dark{background-color:var(--color-band-dark-background)}
.band--dark,.band--dark a,.band--dark h2{color:var(--color-band-dark)}
.band--attention{background-color:var(--color-band-attention-background);color:var(--color-band-attention)}
.band__title{text-align:center;font-size:12px;font-size:.75rem;line-height:2;text-transform:uppercase;letter-spacing:.1em;color:var(--color-band-attention);-webkit-font-smoothing:auto}
.band__body{max-width:40em;margin-right:auto;margin-left:auto}

/* Three-column promo band. */
.promo{padding-bottom:0;text-align:center}
@media screen and (min-width: 64em){.promo{padding-bottom:var(--spacing-unit)}}
.promo .heading{color:var(--color-headings-column)}
.promo__body{display:block;color:var(--color-text);font-weight:400}
.promo__lead{display:block}
.promo__lines{list-style:none;margin-left:0}
.promo__lines>li+li{margin-top:var(--spacing-unit--tiny)}
.promo__bullets{display:inline-block;text-align:left;margin-left:var(--spacing-unit)}
.promo__links{text-align:center}
@media screen and (min-width: 45em){.promo__links-spacer{padding-right:1.5em;padding-left:1.5em}}

/* Firms band: names in place of the logo wall. */
.client-list{margin:0;padding:0;list-style:none;text-align:center}
.client-list__item{display:inline-block;padding:var(--spacing-unit--small);font-size:24px;font-size:1.5rem;line-height:1.2;font-weight:600;color:var(--color-band-attention)}
@media screen and (min-width: 45em){.client-list__item{padding:var(--spacing-unit);font-size:30px;font-size:1.875rem}}

/* Article list. */
.post__date{display:block;color:var(--color-gray-light);margin-bottom:0}
.post__title{margin-bottom:0}
.post__title>a{font-weight:400}

/* Footer. */
.page-foot{font-size:12px;font-size:.75rem;line-height:2;padding-bottom:0}
@media screen and (min-width: 64em){.page-foot{padding-bottom:var(--spacing-unit)}}
.page-micro{background-color:var(--color-page-micro-background);padding:var(--spacing-unit--small) 0;text-align:center}
.page-micro,.page-micro a{color:var(--color-page-micro)}
.page-micro__copy{font-size:12px;font-size:.75rem;line-height:2;display:block}

/* Utilities. */
.text-banner{text-align:center;text-wrap:balance}
@media screen and (min-width: 45em){.lap-and-up-one-half{width:50%}}
@media screen and (min-width: 64em){.desk-one-third{width:33.333333333%}.desk-two-thirds{width:66.666666666%}}
.mb{margin-bottom:24px !important}
.mb0{margin-bottom:0 !important}
@media screen and (min-width: 64em){.hide-desk{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}}
